Articles by Deepak Prasad
Implement a Binary Search Tree in Python: insert, search, delete, traverse
Build a BST in Python with a Node class, iterative insert and search, inorder preorder postorder traversals, delete for leaf one-child and two-child nodes, duplicate policy, complexity, and common pitfalls.
Combine Two Arrays as Columns in NumPy: column_stack, hstack, and concatenate
Combine two lists or 1-D NumPy arrays into a two-column 2-D array using numpy.column_stack, with numpy.stack axis=1, numpy.hstack for column-shaped inputs, numpy.concatenate axis=1, row vs column stacking, shape rules …
Create Simple & Complex Python Package with Examples
This guide will lead you on how to create a Python package which includes setup, configuration, building and publishing. You will learn how to include more files, test locally and version control for successful …
Python Add to Dictionary: Add Key-Value Pairs, Update, and Append
Learn how to add to a dictionary in Python using key assignment, update(), setdefault(), |=, and dictionary unpacking, with examples for single keys, multiple keys, lists, nested dictionaries, and existing keys.
Merge Dictionaries in Python: |, update(), **, and More
Learn how to merge dictionaries in Python using the | operator, update(), ** unpacking, copy(), ChainMap, and more, with duplicate key behavior and Python version differences.
FileNotFoundError in Python: Causes, Fixes, and Path Examples
Learn what FileNotFoundError (No such file or directory, errno 2) means in Python, why it happens even when the file seems to exist, and how to fix it with correct paths, working directory, pathlib, symlinks, and …
strconv in Go: parse, format, quote, and common errors
strconv in Go: parse and format integers, floats, and bools, Quote and Unquote, bases with FormatUint and ParseInt, NumError with errors.Is, and when to prefer strconv over fmt.Sscanf.
Golang Variable Scope: Local, Package-Level, Global, and Block Scope
Learn variable scope in Go, including local variables, package-level variables, global-style variables, block scope, short declarations, shadowing, and best practices.
Golang Web Server Tutorial: Build and Configure an HTTP Server in Go
Learn how to build a Go web server using net/http, configure routes, handlers, ports, timeouts, static files, JSON responses, and graceful shutdown.
Golang Closure Function: Closures, Captured Variables, and Performance
Learn closures in Go: function values that capture outer variables, how they differ from anonymous functions, returned functions and state, goroutine loop pitfalls, and golang closure performance and escape analysis.
Golang Buffered Channel: Capacity, Blocking, and Buffered vs Unbuffered
Learn buffered channels in Go: make(chan T,n) capacity, len and cap, when send and receive block, buffered vs unbuffered channels, backpressure, deadlocks, choosing buffer size, and practical patterns.
Golang Regexp Tutorial: Match, Find, Replace, and Extract Regex Groups
Learn how to use regex in Go with the regexp package, including MatchString, Compile, MustCompile, FindString, submatches, ReplaceAllString, Split, and common mistakes.
Goroutine vs Thread in Go: Are Goroutines the Same as Threads?
Understand the difference between goroutines and OS threads in Go, how the Go runtime scheduler maps goroutines onto threads, and why goroutines are lightweight.
Golang portping: TCP checks with Ping and PingN (sequential, parallel, ranges)
Golang portping with janosgyerik/portping: set up module, Ping and PingN API, sequential and parallel TCP checks, port ranges, PingN result handling, retries, per-dial timing, CLI install, common dial errors; links to …
Golang store values in a struct using a for loop
Store slice values into structs with for range, golang iterate over struct fields with reflect, and a short golang forloop refresher—correct Go, no broken examples.
Golang background process: start, monitor, and wait with os/exec
Golang start process and spawn with os/exec Start Wait and Run; CommandContext timeouts; goroutines channels WaitGroup for golang background jobs; go run in background vs shell; wait golang patterns.
Golang Switch Case Statement: Examples, Multiple Cases, and Type Switch
Use the switch statement in Go for switch case and default, comma-separated cases, expressionless switch, initial statements, type switch on any, fallthrough, and patterns that replace long if-else chains.
Install Go on Ubuntu: apt, snap, or official tarball (with checksum)
Installing golang on Ubuntu: apt golang-go, snap install go --classic, official go.dev/dl tarball with sha256 verify, optional build-from-source with bootstrap Go, amd64 and arm64, PATH and GOBIN, go version, go mod init …
Golang get IP address: local IPv4/IPv6, hostname, and Linux interfaces
Golang get ip address and golang get local ip: net.InterfaceAddrs and Interfaces for linux get local ip, golang get hostname with LookupHost, go get ip address heuristics, golang get local ip address without loopback, …
Golang user input: Scan, Scanf, and bufio for stdin
How to take input in golang and golang get user input from stdin: fmt.Scan Scanln Scanf for typed tokens, golang read input with bufio; go read user input and how to get user input in go with line-based reads; input …
Golang panic and recover: defer, stack unwinding, and catch-style recovery
Golang panic and go panic: how unwinding works with defer; golang recover from panic and go recover panic in a deferred function (go catch panic / golang catch panic pattern); panic vs errors and os.Exit; logging with …
Golang garbage collection: GC, heap, GOGC, runtime.GC, and tuning
Golang garbage collection and golang gc: go garbage collector basics, heap in golang and HeapAlloc, golang force garbage collection with runtime.GC, GOGC and GOMEMLIMIT, gctrace, pprof, and garbage collection in go for …
Create Nested Directories in Go (os.Mkdir, os.MkdirAll, mkdir -p)
Create nested directories in Go with os.Mkdir per level, os.MkdirAll for a full path in one call, filepath.Join for portable paths, optional os.Stat guards, or exec.Command mkdir -p when shell semantics are acceptable.
Copy Files in Go While Preserving Permissions
Copy a file in Go with os.Open, io.Copy to os.Create, then os.Chmod from os.FileInfo.Mode; or use os.ReadFile and os.WriteFile with the source mode; os.Rename moves within a filesystem rather than copying.
Convert a Slice to a Map in Go (Set, Index Map, Group Duplicates)
Build a map from a slice in Go: use elements as keys for set-like maps, pick struct fields as keys, map indices to values, or map keys to slices of positions for duplicates.
Convert int to string in Go (strconv, fmt, bytes.Buffer)
Convert int to string in Go with strconv.Itoa or strconv.FormatInt, fmt.Sprintf or fmt.Fprintf to an io.Writer, and strings.Builder for custom assembly; compare with general type conversion in Go.
Go context Package: Cancel, Timeout, Deadlines, and Values
Use golang context for deadlines and cancellation: Background and TODO roots, WithCancel, WithTimeout, WithDeadline, and WithValue for request-scoped data; always call cancel and pass ctx as the first parameter.
Golang Shiny: windows, events, and drawing with x/exp/shiny
Experimental desktop GUIs with golang.org/x/exp/shiny: driver.Main, screen buffers, paint and lifecycle events from x/mobile, resize-safe drawing, and when to prefer Fyne, Gio, Ebiten, or Wails.
Call a Function From Another Package or File in Go
Call Go code from another file or another package: what to import, when you do not need an import, capital letters for public functions, and how to fix typical errors.
go list installed packages: list Go packages, modules, and install paths
go list command for std, ./..., and all; go list -m all for modules; where Go stores packages (GOMODCACHE, GOROOT, GOPATH/bin); list go packages and binaries from go install without mistaking modules for a global package …

