Learn

Build durable
engineering
understanding

Practical tutorials and deep explanations grounded in reproducible environments, exact versions, and observable results.

Start learning your way

Choose your path

Get StartedNew here? Start from the basics.By TechnologyExplore topics grouped by technology.By Skill LevelBeginner to advanced progression.By Use CaseLearn through practical engineering work.Deep DivesIn-depth explanations of complex topics.What's NewLatest tutorials and updated content.

Learn by technology

Explore engineering domains

Software Development101 guidesLinux64 guidesLinux Kernel24 guidesWordpress14 guidesAndroid9 guidesDeveloper Tools9 guides

Learning resources

Supporting knowledge

Install Chrome on Ubuntu—and Know Who Updates ItguideWho Is Really Logged In to This Linux Machine?guideMake Room in Windows Without Deleting What MattersguideLet the Linux tree Command Explain a DirectoryguideResume Large File Transfers over Unstable SSHguideLaunch a Secure Amazon EC2 Instance Step by Stepguide

Structured tutorials

Understand one concept at a time

Existing library

Continue exploring

Android Build System

Connect Android Library Modules with Gradle

A library module can depend on another module with one Gradle project dependency. The important design choice is whether the dependency remains an implementation detail or becomes part of your public API—and how that relationship survives publication.

Read guide
Android Errors and Solutions

Fix “Invoke-customs” Android min-api 26 Build Error

This dex error usually means a module or dependency emits Java 8 invocation bytecode without compatible desugaring. First configure the module correctly; if the failing code calls MethodHandle.invoke, use the API-26-safe path instead of masking the problem.

Read guide
Android Build System

Add a Local AAR Dependency to an Android Project

A precompiled AAR can be linked directly from an app module, but the file carries no Maven dependency metadata. Here is the clean Gradle setup, plus the checks that prevent missing classes, resource conflicts, native ABI surprises, and release-only failures.

Read guide
Android Applications

Keep Android Immersive Mode After a PopupMenu

A PopupMenu temporarily owns window focus, so Android may reveal system bars. Use the current WindowInsets controller, track whether fullscreen remains desired, and restore bars only after focus returns or the popup is dismissed—without fighting system gestures or accessibility.

Read guide
Reddit

Create a Reddit Community People Can Trust

Creating a subreddit is the easy click; building a safe, useful community is the real work. Choose a durable identity, configure access and content controls, establish transparent moderation, seed genuine discussions, and grow without spam or manipulation.

Read guide
Linux Host, Ubuntu, SysAdmin

Set a Static IP on Ubuntu Without Losing Access

A stable address is usually safest as a DHCP reservation. When the host itself must own a static address, identify the active renderer, choose an address outside the dynamic pool, validate Netplan syntax, use rollback-capable apply, and verify link, route, DNS, and remote access separately.

Read guide
Android Framework

Monitor Android Network Connectivity Correctly

A connected Wi-Fi or cellular network is not proof that your server is reachable. Observe Android’s default network and capabilities, expose conservative UI state, and let each request handle DNS, TLS, timeout, authentication, and server failures independently.

Read guide
Vim

Export Vim Diff Highlighting to HTML Safely

Vim’s 2html converter can turn the active diff window into a standalone highlighted HTML snapshot. Use explicit output paths and noninteractive commands, understand the single-window limitation, and batch directory pairs without unsafe deletion or whitespace splitting.

Read guide
System Administration, Security

Protect Apache with Basic Auth on Ubuntu

HTTP Basic authentication can place a small, auditable username/password gate in front of an Apache directory. Use it only over HTTPS, keep the password file outside the document root, validate configuration before reload, and test both unauthorized and authorized paths without exposing credentials.

Read guide

Engineering weekly

Useful technical knowledge, not inbox noise.

Receive verified fixes, references, labs, and tools. Confirm by email; unsubscribe any time.