Vim Tutor (vimtutor)

Based on A Day with Vim Tutor (vimtutor) by Minh-Phuc Tran

vimtutor is a very basic, clean, and cool application that teaches you how to use Vim. It’s the best place to get started using vim. Spending about 1 hour with vimtutor, you can pretty much get all major features of vim.

However, 1 hour is somewhat too much for guys who aren’t that interested in vim. Therefore, I wrote this 3-min-read article summarizing what and how vimtutor can teach you, then you can decide to jump into it later.

What vimtutor teaches

vimtutor includes 7 lessons:

Building Blocks of a Scalable Architecture

Based on this article


Modern online application development requirements are driven by the need for a highly-scalable and performance-centric platform. Like System Functionality Requirements, the NFR's (Non Functional Requiments) like scalability, performance and availability are given equal importance. For many years IT industry has been struggling to build highly scalable systems. In this struggle it has learned many good architecture and design principles.

This document captures some of these learning which are most frequently used from a very high level view. These learning has been categorized into design principles, design rules, design patterns, design antipatterns and building blocks of highly scalable online platforms. Followings are the high level definitions of these.

  • Design Principles are the fundamental design laws to be followed to build scalable systems. Design rules, patterns and anti-patterns are derived from one or more of these principles.

  • Design Rules are second level design laws that tells you of what to do and what not to do based on the past learning or what worked and what did not work.

Principles of Good System Design

Based on this article

(Note that these are not presented as universal principles of system design, but rather ones that worked for this specific project. Hopefully they are useful examples, but I urge you to take a shot at your own list.)

1. Keep it as simple as possible to address today’s known problems

Don’t add complexity to the system to solve hypothetical problems we might face in the future. Thinking ahead is great, but we shouldn’t take on the burden of planning for eventualities that might not even happen. Let’s not try to boil the ocean.

If we can make the system more open-ended without adding a ton of complexity to the system or adding lots of work, that’s great. But otherwise let’s stay focused.

Can we make this simpler? Are we making too many assumptions about how this may need to be extended in future?

2. Ensure that it’s legible

A successful system should be easy for users to understand when they interact with the product. They will need to look at the UI (when we design it) and be able to roughly figure out what the parts of the system are.

Kimball Data Modeling, or why not?

Cloud Data Management

Learn how to manage your data stack and set up processes to get the most out of your data in your organization. We will cover best practices for when you are still querying production all the way up to setting up data marts for different business lines in your organization.

Who this book is for

This book is for anyone looking to setup an effective, modern (typically cloud-based) data stack that will truly enable a company to explore and understand the data it collects to have high visibility into their business. It’s for people who value their data and realize that a company that is truly informed by their data has significant competitive advantages

Download book

Introduction to Data Warehousing

3D Print stl files

Use your favorite slicer to convert these to gcode, I use Cura to generate gcode files that I upload to Octoprint for my Ender 3 printer. 

Here are some fun prints for kids.

Little fun prints

Chess pieces - Original and Replacement




Train scaled 75%





Ender 3 upgrade to v2 silent board 4.2.7 and add BLTouch 3.1

I recently found out about the v2 motherboard upgrade (Motherboard V4.2.7 with TMC2225) for the Ender 3. It is a great idea and not very expensive or hard to do.  The reasons for doing the upgrade are you replace the 8 bit board with a 32 bit board and the new board comes with Silent stepper motor drivers.  They may the printer run silent except for the power supply fan which I added a cover over to quite down some.