SketchUp Tools For Drawing in 3D

The free version of SketchUp offers many tools for drawing in 3D.

Following is a list of them and how to use them.

Select Tool

Select items and objects in the model.

Tool Operation

  1. Click on an item or object.

Modifier Keys

  • Hold Ctrl = Add an item to the selection set.
  • Hold Shift = Add and/or subtract an item to/from the selection set.
  • Hold Shift+Ctrl = Subtract an item from a selection set.

Tips

  • Double-click a face to select the face and all of its edges.
  • Double-click an edge to select the edge and the faces that share it.
  • Triple-click an edge or face to select all connected items.
  • Double-click an object to edit it.
  • Ctrl+A = Select all visible items in the model.
  • Ctrl+T = Deselect all selected items in the model.

Lasso Tool

Make precise selections.

Tool Operation

  1. Click and drag to draw selection boundary.

Modifier Keys

  • Hold Ctrl = Add an item to the selection set.
  • Hold Shift = Add and/or subtract an item to/from the selection set.
  • Hold Shift+Ctrl = Subtract an item from a selection set.

Tips

  • Drag to the right to create a window selection that will capture items entirely within the selection boundary.
  • Drag to the left to create a crossing selection that will capture anything the selection boundary touches.
  • Make single-click selections just like the Select tool.

Eraser Tool

Erase entities.

Tool Operation

  1. Click on entity to erase. Alternatively, hold down mouse button drag over entities. All entities are erased when mouse button is released.

Modifier Keys

  • Ctrl = Toggle soften and smooth edges.
  • Alt = Toggle unsmooth edges and unhide edges and objects.
  • Shift = Toggle hide edges and objects.
  • Ctrl + Shift = Toggle deselect edges and objects selected by the eraser tool.

Paint Bucket Tool

Assign colors and materials to items and objects.

Tool Operation

  1. (Optional) Preselect the items or objects that you want to paint.
  2. Select a materials library using drop down list in Materials Browser.
  3. Select a material from materials library.
  4. Click on faces to paint.

Modifier Keys

  • Alt = Sample material for painting.
  • Shift = Toggle paint all faces with matching materials.
  • Ctrl = Toggle paint all connected faces with matching materials.
  • Shift + Ctrl = Toggle paint all faces on the same object with matching materials.

Line Tool

Draw edges or line entities.

Tool Operation

  1. Click to set the first point.
  2. Move cursor.
  3. Click to set the second point (creating an edge).
  4. (Optional) Move cursor.
  5. (Optional) Click to set a third point.
  6. (Optional) Repeat step 4-5 to create additional connected edges.

Modifier Keys

  • Alt = Cycle through linear inference options (All On; All Off; Parallel/Perpendicular Only).
  • Hold Shift = Lock Line tool to the current direction inference.
  • Arrow keys = Lock Line tool to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • Once you’ve drawn a closed loop of at least 3 coplanar edges, a face will fill in automatically.

Freehand Tool

Create hand-drawn curve entities.

Tool Operation

  1. Click and drag to draw a freehand curve.

Modifier Keys

  • Ctrl = Decrease the segments of the last drawn freehand curve.
  • Alt = Increase the segments of the last drawn freehand curve.
  • Before an operation, use arrow keys to lock the drawing plane of a curve (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Segments may only be modified immediately after creating a curve.

Arc Tool

Draw Arc entities.

Tool Operation

  1. Click to set arc’s center. Optionally, click and drag first point to set drawing plane.
  2. Move cursor to define first arc point or enter radius.
  3. Click to set first arc point.
  4. Move cursor around the protractor guide or enter angle.
  5. Click to set second arc point.

Modifier Keys

  • Hold Shift = Lock current inference direction.
  • Arrow keys (before 1st click) = Lock protractor rotation axis direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).
  • Arrow keys (after 1st click) = Lock drawing direction to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • Click Window > Model Info > Units > Angle Units to change snapping angle.
  • Ctrl '+' or Ctrl '-'= Change the number of segments.

2-Point Arc Tool

Draw 2-Point Arc entities.

Tool Operation

  1. Click to set start point of arc.
  2. Click at ending point of arc or enter value.
  3. Click to set bulge distance or enter value to finish arc.

Tool Operation (Tangent Inference locked)

  1. Click to set start point of arc at an existing edge or vertex.
  2. Click an end point for arc, or enter value.

Modifier Keys

  • Alt = Lock tangent arc drawing.
  • Hold Shift = Lock current inference direction.
  • Arrow keys = Lock drawing direction to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • Ctrl '+' or Ctrl '-'= Change the number of segments.
  • When multiple edges intersect, define tangency by hovering over one of the edges before starting the arc.

3-Point Arc Tool

Draw 3-Point Arc entities.

Tool Operation

  1. Click to set start point of arc.
  2. Click to set second point. The arc will always go through this point.
  3. Click to finish the arc, or enter an angle to define arc’s section of a circle.

Tool Operation (Tangent Inference locked)

  1. Click to set start point of arc at an existing edge or vertex.
  2. Click an end point for arc, or enter value.

Modifier Keys

  • Alt = Lock tangent arc drawing.
  • Hold Shift = Lock current inference direction.
  • Arrow keys = Lock drawing direction to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • Ctrl '+' or Ctrl '-'= Change the number of segments.
  • When multiple edges intersect, define tangency by hovering over one of the edges before starting the arc.

Pie Tool

Draw Pie entities.

Tool Operation

  1. Click to set pie’s center. Optionally, click and drag first point to set drawing plane.
  2. Move cursor to define first arc point or enter radius.
  3. Click to set first arc point.
  4. Move cursor around the protractor guide or enter angle.
  5. Click to set second arc point.

Modifier Keys

  • Hold Shift = Lock current inference direction.
  • Arrow keys (before 1st click) = Lock protractor rotation axis direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).
  • Arrow keys (after 1st click) = Lock drawing direction to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • Click Window > Model Info > Units > Angle Units to change snapping angle.
  • Ctrl '+' or Ctrl '-'= Change the number of segments.

Rectangle Tool

Draw rectangular face entities.

Tool Operation

  1. Click to set first corner.
  2. Move cursor diagonally.
  3. Click to set second corner.

Modifier Keys

  • Ctrl = Toggle drawing from center.
  • Hold Shift = Lock Rectangle to current drawing plane inference.
  • Arrow keys = Toggle lock drawing plane inference (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).

Tips

  • Esc = Cancel operation.
  • When drawing rectangles, you can specify length & width by separating the measurements with a comma. For example: to draw a two foot by four foot rectangle, you can enter 2', 4' into the measurement box. The order of the measurements matches the order of the axes (R, G, B). For example: Red, then Green; Red, then Blue; or Green, then Blue.

Rotated Rectangle Tool

Draw rectangular face entities.

Tool Operation

  1. Click to set first corner. Optionally, click and drag first point to set drawing plane.
  2. Move your cursor around the protractor to set the direction of the first edge.
  3. Click to set second corner.
  4. Move your cursor to set the length and angle of the second edge.
  5. Click to set third and final corner.

Modifier Keys

  • Hold Shift = Lock current inference direction.
  • Alt (after 1st click) = Lock drawing plane for first edge.
  • Alt (on a locked plane, after first click) = Set protractor baseline.
  • Alt (after 2nd click) = Set protractor baseline.
  • Arrow keys (before 1st click) = Lock protractor rotation axis direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).
  • Arrow keys (after 1st click) = Lock drawing direction to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.

Circle Tool

Draw Circle entities.

Tool Operation

  1. Click to set center point.
  2. Move cursor away from center point to define radius.
  3. Click to finish circle.

Modifier Keys

  • Hold Shift = Lock current inference direction.
  • Arrow keys (before 1st click) = Lock surface normal (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).
  • Arrow keys (after 1st click) = Lock drawing direction to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • Ctrl '+' or Ctrl '-'= Change the number of segments.

Polygon Tool

Draw Polygon entities.

Tool Operation

  1. Click to set center point.
  2. Move cursor away from center point to define radius.
  3. Click to finish polygon.

Modifier Keys

  • Hold Shift = Lock current inference direction.
  • Ctrl = Toggle between inscribed and circumscribed radii of polygon.
  • Arrow keys (before 1st click) = Lock surface normal (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).
  • Arrow keys (after 1st click) = Lock drawing direction to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • Ctrl '+' or Ctrl '-'= Change the number of segments.

3D Text Tool

Push/Pull Tool

Push and pull face entities to add or subtract volume from your 3D models.

Tool Operation

  1. (Optional) Preselect the face that you want to push/pull.
  2. Click on a face to start push/pulling.
  3. Move cursor to push or pull face.
  4. Click to set face or enter distance.

Modifier Keys

  • Ctrl = Toggle create new starting face.
  • Alt = Toggle Stretch mode.

Tips

  • Esc = Cancel operation and clear selection.
  • When a face is pre-selected, you can click anywhere in the model to begin push/pulling it, and then click anywhere to set it down.
  • Double-click to repeat a Push/Pull distance, in the same direction.

Follow Me Tool

Extrude a face along a path.

Tool Operation (Nothing Pre-selected)

  1. Click the face of the profile that you want to extrude.
  2. Move cursor along the edge or edges that you want the profile to follow.
  3. Click to set the extrusion.

Tool Operation (Preselect Path)

  1. Use the Select tool to pre-select a continuous set of edges to define the path.
  2. (Alternatively) Pre-select a face to define the perimeter of the face as the path.
  3. Activate the Follow Me tool.
  4. Click the face of the profile that you want to extrude.

Modifier Keys

  • Alt = Use perimeter of face as the path.

Tips

  • Esc = Cancel operation.

Offset Tool

Create copies of lines at a uniform distance from originals.

Tool Operation

  1. Click on a face.
  2. Move cursor.
  3. Click to finish offset operation.

Modifier Keys

  • Alt = Toggle allow/trim overlap.

Tips

  • Esc = Cancel operation.

Outer Shell Tool

Combine all selected solid objects into a single solid object and remove interior items.

Tool Operation

  1. Select first solid object.
  2. Select second solid object.
  3. Select next solid object or press Esc to complete.

Move Tool

Move or copy entities, and/or rotate objects.

Tool Operation

  1. Click on an entity or object to pick it up.
  2. Move cursor to move entity or object to a new location.
  3. Click to set it down or enter a distance.

Modifier Keys

  • Ctrl = Cycle Move/Copy/Stamp.
  • Alt = Toggle Autofold mode (useful for overriding Move tool constraints); when hovered over an object, use Alt to cycle through grip types.
  • Shift = Lock Move to the current inference direction.
  • Arrow keys = Toggle lock inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • When items are pre-selected, you can click anywhere in the model to begin moving them, and then click anywhere to set them down. This is an effective way to move things precisely and/or align things to other things.
  • Click the red crosshairs that appear on the bounding box of an object to rotate that object.
  • After moving a copy, you can type a number followed by the X key and then press Enter to create an array of copies.

Rotate Tool

Rotate, stretch, distort, or copy items or objects along a rounded path.

Tool Operation

  1. (Optional) Preselect the items or objects you want to rotate.
  2. Click on an item or object to both make a selection and set the center point of rotation.
  3. Move cursor to indicate start point of rotation.
  4. Click to set starting point of rotation.
  5. Move cursor to indicate end point of rotation.
  6. Click to complete rotation, or enter angle in degrees.

Modifier Keys

  • Ctrl = Toggle rotate a copy.
  • Before first click, hold Shift to lock protractor inference.
  • Before first click, use arrow keys to toggle the protractor inference lock direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).
  • After first click, use arrow keys to toggle rotation inference lock direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • During Step #2 of the tool operation steps above, you can click-drag the protractor along an edge or axis to set an axis of rotation.
  • After rotating a copy, you can type a number followed by the letter X and then press Enter to create a rotated array of copies.
  • When inputting rotation values into the Measurements box, you can enter either an angle of rotation, in degrees (for example 45 Enter),or a slope expressed as a rise:run architectural slope notation (for example 4:12 Enter).

Scale Tool

Resize or stretch items and objects.

Tool Operation

  1. (Optional) Preselect the items or objects you want to scale.
  2. Click on a face or object.
  3. Click on a Scale grip.
  4. Move cursor to resize or stretch item or object.
  5. Click to finish scaling item or object.

Modifier Keys

  • Ctrl = Toggle scale about center.
  • Shift = Toggle uniform scale.

Tips

  • Esc = Cancel operation.
  • Click a corner grip for 3-way scale. Default = Uniform. Pressing Shift = Non-uniform.
  • Click a midline grip for 2-way scale. Default = Non-uniform. Pressing Shift = Uniform.
  • Click a center grip for 1-way scale. Default = Non-uniform. Pressing Shift = Uniform.
  • When scaling an item or object you have the option to enter either a scale factor (for example 2.5 Enter will make the things you’re scaling 250%, or two and a half times bigger), or you can simply input the size that you want the thing you’re scaling to be (for example, if scaling up along the blue axis direction, 6' Enter will make the selection six feet tall).

Tape Measure Tool

Measure distances, create guide lines, or scale a model.

Tool Operation

  1. Click at starting point of measurement.
  2. Move cursor.
  3. Click at ending point of measurement.

Modifier Keys

  • Ctrl = Toggle create guide lines.
  • Hold Shift = Lock Tape Measure to current inference direction.
  • Arrow keys = Lock Tape Measure to specific inference direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • After measuring from point to point, you can input a distance to scale/resize the model.
  • When in Create Guide mode, begin on an edge to create a guide of infinite length; begin on a point to create a guide of finite length.

Dimension Tool

Place Dimension entities.

Tool Operation

  1. Click at starting point of dimension.
  2. Move cursor.
  3. Click at ending point of dimension.
  4. Move cursor to pull out the dimension string.
  5. Click to set the dimension string.

Tips

  • Esc = Cancel operation.

Text Tool

Create Text entities.

Tool Operation

  1. Click on an entity to indicate ending point of leader line (location where leader will point).
  2. Move cursor to position text.
  3. Click to place text.
  4. (Optional) Click in text box.
  5. (Optional) Enter text in text box.
  6. Click outside text box to complete operation.

Tips

  • Esc = Cancel operation.

Section Plane Tool

Create section cuts through your model or objects.

Tool Operation

  1. Click on a face to create a section plane that is aligned to that face.

Modifier Keys

  • Hold Shift (before 1st click) = Lock section plane to current orientation.
  • Arrow keys = Toggle lock section plane orientation (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).

Tips

  • It’s possible to activate multiple section planes at the same time, as long as the section planes are in different contexts. For example, you can activate one section plane through the model, and then activate another section plane through a group or component object and have both planes active at the same time.

Protractor Tool

Measure angles and create angled guide line entities.

Tool Operation

  1. Place protractor’s center at vertex of angle.
  2. Click to set vertex. (Alternatively: click and drag first point to set rotation plane.)
  3. Move cursor in circle until touching start of angle.
  4. Click to set start of angle.
  5. Move cursor in circle until touching end of angle.
  6. Click to measure angle.

Modifier Keys

  • Ctrl = Toggle create guide lines.
  • Before first click, hold Shift to lock protractor inference.
  • Before first click, use arrow keys to toggle the protractor inference lock direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel).
  • After first click, use arrow keys to toggle rotation inference lock direction (→ = Red, ← = Green, ↑ = Blue, ↓ = Parallel/Perpendicular).

Tips

  • Esc = Cancel operation.
  • When inputting rotation values into the Measurements box, you can enter either an angle of rotation, in degrees (for example 45 Enter ), or a slope expressed as a rise:run architectural slope notation (for example 4:12 Enter).

Axes Tool

Move or reorient drawing axes.

Tool Operation

  1. Click to set axis origin.
  2. Move cursor to locate direction for the red axis.
  3. Click to set the red axis.
  4. Move cursor to locate direction for the green axis.
  5. Click to set the green axis.

Modifier Keys

  • Alt = Alternate axis orientation (after clicking to set the origin).

Tips

  • Esc = Cancel operation.

Tag Tool

Apply tags to objects.

Tool Operation

  1. Select a single tag in the Tags panel.
  2. Click on an item or object to assign the selected tag.

Modifier Keys

  • Alt = Sample the assigned tag from an object or item.
  • Ctrl = Apply a tag to all instances of a component.
  • Shift = Replace the current tag of all items in a given context with the selected tag.

Tips

  • Before tagging edges and faces, consider creating groups or components, and then tag the group or component instead.
  • Use ‘Select > All with Tag’ in the right-click context menu to select all items in a given context that share the same tag.
  • Color by Tag can be a useful way to identify which tags have been assigned to which items.

Walk Tool

Walk through (tour) a model.

Tool Operation

  1. Click and drag the cursor: Up = Walk forward; Down = Walk backward; Left = Turn left; Right = Turn right.

Modifier Keys

  • Hold Shift = Float up instead of forward, or down instead of backward.
  • Hold Ctrl = Run instead of walk.
  • Hold Alt = Walk through things.

Tips

  • Esc = Cancel operation.
  • The further you drag the cursor away from the start point (indicated by crosshairs), the faster you’ll walk.

Position Camera Tool

Position camera at a specific eye height.

Tool Operation

  1. Click anywhere in the model to place the camera. The camera will be positioned above the point where you click, at the eye height distance specified in the measurements box.
  2. (Optional) Click and drag from one point in the model to another point in the model to create a target camera. The point you drag from will be the exact location where the camera will be positioned, the point you drag to will establish the camera target.

Look Around Tool

Pivot camera from a stationary point.

Tool Operation

  1. Click and drag the cursor to pivot the camera (i.e. look around in the model).

Tips

  • Esc = Enable previously selected tool.

Orbit Tool

Orbit camera around model.

Tool Operation

  1. Click and drag cursor within the drawing area to orbit the camera.

Modifier Keys

  • Hold Shift = Pan tool.
  • Hold Ctrl = Suspend gravity (do not try to keep vertical edges up and down).

Tips

  • Esc = Enable previously selected tool.

Pan Tool

Move camera vertically or horizontally.

Tool Operation

  1. Click and drag cursor within the drawing area to pan the camera.

Tips

  • Esc = Enable previously selected tool.

Zoom Tool

Move camera in or out.

Tool Operation

  1. Click and drag cursor within the drawing area to zoom the camera.

Modifier Keys

  • Hold Shift = Change field of view degrees.

Tips

  • Esc = Enable previously selected tool.

Zoom Window Tool

Zoom in to a specific area of the model.

Tool Operation

  1. Click and drag the cursor across the items in the model that you want to zoom into.

Tips

  • Esc = Enable previously selected tool.

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 two main things that affect muscle growth: food and exercise. Actually, there’s one more thing: sleep (rest).

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 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’s are some protein-rich foods.

FoodQuantityProtein (g)CaloriesProtein / Calorie Ratio
Eggs1 large67811%
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 diet. 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.

Example Meal Plan

Here’s my daily meal plan.

Breakfast

  • 4 eggs in a bowl microwaved for 2 minutes
  • 1 cup of Nespresso 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 calorie)

Total Daily Protein and Calorie Consumption

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

Now, I currently weigh 178 lbs so I could just skip the last protein shake and the total would be 180 grams of protein and 1768 calories.

Superfoods

Note that some of the foods listed above are superfoods. Here’s a list of superfoods:

  • Dark leafy greems (Kale, Swiss chard, Collard greens, Turnip greens, Spinach)
  • Berries (Raspberries, Strawberries, Blueberries, Blackberries, Cranberries, Acai berries)
  • Green tea and matcha
  • Eggs
  • Legumes (lentils, peas, peanuts, alfalfa)
  • Nuts (Almonds, pecans, pistachios, walnuts, cashews, Brazil nuts, macadamia nuts)
  • Seeds (Sunflower seeds, pumpkin seeds, chia seeds, flaxseeds, hemp seeds)
  • Kefir (and yogurt)
  • Garlic
  • Olive oil
  • Ginger
  • Turmeric (Curcumin)
  • Salmon
  • Avocado
  • Sweet Potato
  • Mushrooms
  • Seaweed

Source

Exercise

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 your reach failure (can no longer lift) after the 12th rep. Then, for the 2nd set, you do the same until your failure is after the 10th rep. And for the 3rd set, your fail after 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 lift more than X lbs, 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.

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 to maximize results and reduce the change of injury. Here are some of the upper body exercises I prefer.

V-bar Tricep Pushdown

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. For example, I would do 10 or so different exercises in the following order:

OrderExerciseMuscles Targeted
1V-Bar Tricep PushdownTriceps (Tris)
2Shoulder ShrugsTrapezius (Traps)
3Biceps CurlBiceps (Bis)
4Chest PressChest, Shoulders, and Triceps
5Lat PulldownBiceps and Latissimus Dorsi (Lats)
6Triceps PressShoulders and Triceps
7Shoulder PressShoulders
8
9Pectoral FlyChest
10Lat RowLats, Delts, and Traps

I could lift more weight doing the chest press exercise, for example, when it’s the first exercise I do rather than the 5th or 10th. However, with bicep curls, I am able to lift more or less the same weight regardless of when I do that exercise. Also, I have a bit of pain in my left shoulder. Consequently, I can perform better doing the Pectoral Fly exercise early on rather than later when my overall muscles are tired. For this reason, I find it better to some exercises before others as follows (this order may vary by person).

OrderExerciseMuscles Targeted
1Pectoral FlyChest
2Chest PressChest, Shoulders, and Triceps
3Biceps CurlBiceps (Bis)
4Shoulder PressShoulders
5
6Triceps PressShoulders and Triceps
7Lat PulldownBiceps and Latissimus Dorsi (Lats)
8Shoulder ShrugsTrapezius (Traps)
9V-Bar Tricep PushdownTriceps (Tris)
10Lat RowLats, Delts, and Traps

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 BrachiiUpper arm143 cm3
SartoriusUpper and inner thigh126 cm3
Source

Muscle Gain

The longer your 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

Muscle Gain vs Weight Gain

Traditional muscle gain is achieved by gaining weight. Yes, you can gain a little bit of muscle while losing fat, but this process is fairly slow and not as efficient as building muscle during a true bulk. If you want to gain some serious muscle mass, this requires weight gain. 

The thing about weight gain and weight loss is that it is always a combination of lean tissue and fatty tissue – never one exclusively. This means you will always gain some additional body fat when trying to gain muscle and lose some muscle when trying to lose body fat. 

Depending on a number of factors, for each pound you gain, anywhere from one-third to two-thirds will result in fat, with the remaining being lean tissue (muscle).

Sleep / Rest

In order for your muscles to grow, you need to have sufficient rest. Make sure to sleep enough, e.g. 7 hours a day.

Stages of Muscle Growth

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. There are three stages of muscle growth.

StageDescription
1. Muscle breakdownYou break down your muscles by lifting weights at a high intensity
2. Hormone increaseBeginning during the lifting session and continuing when you’re resting, certain hypertrophy-specific hormones increase
3. Muscle repair and growthWhile resting / sleeping, damaged muscle tissue is repaired and the muscles grow bigger only if you have consumed an excess of calories
Source

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. You’re 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.

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 and 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 situps.

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 it helps to be in a caloric surplus — or at least in maintenance if you’re new to lifting.
  • 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
  • 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.

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!