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

Django & REST Api

Add a Django Model to the Admin—Properly

Registering a Django model takes one line; making its admin safe and pleasant takes a little design. Build a useful change list, searchable forms, related-object inlines, permission boundaries, and tests without turning the admin into an accidental public application.

Read guide
Django & REST Api

Create and Secure a Django Admin Account

Create a Django administrator without leaking credentials or weakening password validation. Then verify the account, recover access safely, understand staff versus superuser privileges, and troubleshoot the admin login in development and production.

Read guide
Django & REST Api

Protect the DRF API Root with Login and Permissions

Adding a Login link to Django REST Framework’s browsable API does not protect an endpoint. This walkthrough combines session authentication with an explicit permission policy, verifies anonymous and logged-in behavior, and closes the production security gaps beginners often miss.

Read guide
Django & REST Api

Design Your First Django Model and Migration

A Django model is more than a Python-shaped table definition: it establishes database constraints, application validation, relationships, query paths, and migration history. This example builds a small publishing model and verifies each layer.

Read guide
Development, Debugging and Performance Tools

Run OpenGrok Code Search on Ubuntu

The old Java 8, Tomcat 8, and Snap ctags recipe no longer matches OpenGrok’s requirements. This deployment uses the maintained official container, pins a release, keeps source read-only, persists index data, binds locally, and explains indexing and upgrades.

Read guide
JAVA Programs

Call C from Java with JNI on Linux

This modern JNI example replaces removed `javah` instructions with `javac -h`, derives the active JDK include path, compiles position-independent C into a shared library, and verifies both the exported symbol and Java-to-native call.

Read guide
Linux

Fix “sudo: unable to resolve host” on Ubuntu

This warning usually means the machine’s active hostname no longer resolves through its configured Name Service Switch sources. Diagnose the exact name first, correct `/etc/hosts` or hostname configuration safely, and verify through `getent` before changing DNS.

Read guide
Wordpress

Find and Fix Broken Links in WordPress

A broken-link report is a triage queue, not a delete list. This workflow chooses an appropriate scanner, validates ambiguous results, repairs the source or redirect, preserves intentional removals, and verifies the rendered site.

Read guide

Engineering weekly

Useful technical knowledge, not inbox noise.

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