RSSAmplifier

Blog

Algorithms, Blockchain and Cloud

The Ultimate Computer Technology Blog - The Knowledgebase of Computing

helloacm.comRSS feed ↗50 posts

Latest posts

Hardening WordPress: Disable PHP Execution in `wp-content/uploads`

[caption id="attachment_26281" align="alignnone" width="383"] wordpress[/caption] WordPress must be able to write media files to `wp-content/uploads`, but files stored there should never need to execute as PHP. This article explains how to block PHP-like files using a central Apache configuration, with `.htaccess` as an additional safety net. It also compares the advantages and limitations of both…

Turning a Dusty Mini PC into a Home Server: My NUC-8’s Second Life

I gave an unused Beelink SEi8 mini PC a second life by installing Ubuntu and turning it into a home server. It now runs a STEEM node, Node.js applications, databases, a reverse proxy and Cloudflare Tunnel. The article also explains how double NAT allows the NUC-8 to initiate connections to my Raspberry Pis while preventing connections in the opposite direction, as well as covering home broadband,…

A Five-Year Milestone at Microsoft (Anniversary Crystal)

To mark my fifth anniversary at Microsoft, I received a meaningful crystal service award. Over the past five years, there have been challenges, growth, and many valuable collaborations and experiences. This award not only commemorates the journey so far, but also reminds me to stay passionate and embrace the next chapter. Microsoft has released its FY2026 results, delivering strong growth in both…

Calculating Pi with Numerical Integration in Python and C++

This article explains how to approximate Pi using the definite integral [math]\pi=\int_0^1\frac{4}{1+x^2},dx[/math]. It introduces the mathematics behind the identity, explains the trapezoidal and midpoint integration methods, and provides single-threaded and multithreaded implementations in both Python and C++. It also demonstrates how the same calculation can be divided across five distributed…

Apple Office in Cambridge

Apple’s Cambridge office is located at 30 Station Road, directly opposite the Microsoft Research office near Cambridge railway station. The building is a modern, seven-storey development with approximately 79,000 square feet of office space and a stated capacity of up to around 900 people. Apple’s Cambridge office at 30 Station Road has grown from its early links with VocalIQ and Siri into a…

How to Use WordPress Search to Display Relevant Posts?

How to Create a Lightweight Related Posts Shortcode in WordPress Display Relevant Posts in WordPress Without a Plugin A Simple WordPress Shortcode to Show Related Posts Build Your Own show_posts Shortcode in WordPress Show Relevant WordPress Posts Using WP_Query WordPress Shortcode for Related Posts with Optional Excerpts Add Related Posts to WordPress Posts Without Extra Plugins Lightweight…

Microsoft Edge Settings That May Be Slowing Down Your Windows PC

This article explains how disabling Microsoft Edge’s Startup boost and background extensions can make Windows feel lighter and more responsive. It covers how these settings affect startup load, memory usage, CPU wake-ups, background processes, and laptop battery life. It also explains why disabling Edge Update services may reduce background activity but is not recommended long term, because…

A Tiny Logic Puzzle About Truth and Lies

A small village logic puzzle shows why careful reasoning matters. With 100 villagers each giving a different answer from 1 to 100, only one answer can be true. Since men always tell the truth and women always lie, the village must have exactly 1 man and 99 women. This is verified by a Python program/code. I came across a fun little logic puzzle today. At first glance, it looks like a simple…

Teaching Kids Programming vLog: Harness Engineering — Commanding AI to Get Work Done

This post shares a hands-on programming lesson with my son, using the VS Code AI Agent to clean up his GitHub Pages homepage. It reflects on how programming education is changing in the AI era: beyond writing code manually, kids now need to learn how to describe requirements clearly, command AI agents, understand Git/GitHub workflows, and review AI-generated code responsibly. The post also…

AI Coding Agents Are Reshaping the Barrier to Programming

AI Coding Agents Are Reshaping the Barrier to Programming Coding Is Becoming as Easy as Using a Calculator From Writing Code to Directing AI: The New Role of Programmers My 12-Year-Old Used Copilot to Modify Tetris — Programming Has Changed AI Is No Longer Just Autocompleting Code — It Is Reshaping Software Development The Future Programmer May Not Start by Writing Code When Copilot Can Take an…

Teaching Kids Programming – Verify Preorder Sequence in Binary Search Tree (Monotonous Stack)

A stack-based solution for LeetCode 255, Verify Preorder Sequence in Binary Search Tree. The key idea is to track a lower bound: once preorder traversal enters the right subtree of a node, all later values must be greater than that node. LeetCode 255: Verify Preorder Sequence in Binary Search Tree LeetCode 255 asks whether a given array of unique integers can be the preorder traversal of a Binary…

From Phone Booths to Large Language Models: The Twilight of Traditional Programming

From Phone Booths to AI: The Twilight of Handwritten Code The C++ Books in the Phone Booth When Phone Booths Become Libraries and Programming Becomes Prompting Traditional Programming in the Age of AI Phone Booths, Programming Books, and the End of an Era From Phone Booths to AI: The Twilight of Handwritten Code After dinner, I walked past an old British phone booth that had been turned into a…

ChatGPT Image 2.0 – Casual Selfie of Me

ChatGPT Image 2.0 - Text2Image ChatGPT Image 2.0 is getting the vibe! It produces really realistic photos/images. Prompt 1: Don’t pretend to know what I actually look like. Based on our past conversations, my experiences, profession, work, and life, translate your understanding of my personality, temperament, way of thinking, and communication style into a visual image. Don’t deliberately add…

Introducing ExamGPT – Your AI Test Coach

At the end of last year, I started preparing for Microsoft certifications. Initially, I created a prompt that worked really well, but having to copy and paste it every time was a bit tedious. So I thought—why not turn it into a custom GPT? That’s how ExamGPT was born. The setup is actually very simple. Go to ChatGPT/GPTs , click “Create” in the top right corner, and fill in the configuration. The…

Teaching Kids Programming – Introduction to Combinatorial Mathematics 2 (Catalan Number)

Introduction to Combinatorial Mathematics (2): Catalan Numbers Catalan numbers are one of the most important sequences in combinatorics . They appear in many counting problems that look very different on the surface, but actually share the same underlying structure: balance, recursion, and non-crossing constraints. In this post, we will introduce the Catalan numbers, show several important…

Programming is not my wife’s thing.

I used to try teaching my wife programming , but it quickly became clear that it just was not her thing. Over time, I think she has forgotten most of what I taught her, which honestly is not surprising, because people rarely retain knowledge in areas they are not genuinely interested in. That experience also taught me that being good at something does not automatically mean you can pass it on…

The touch command in Windows Powershell

The touch Command in PowerShell (Linux-Compatible) If you come from Linux/macOS, you probably miss touch : create a file if it doesn’t exist, otherwise update its modified time. PowerShell doesn’t ship with a built-in touch , but you can add one that behaves like the Unix command (including multiple files and wildcards). This post gives you a practical touch function you can drop into your…

Competitive Programming: Two Simple Tricks in C++ To Make Code Faster

Competitive programmers ALWAYS use these two lines of code. Here's why: C++ has two functions: "cin" - Stands for character input. Reads an input from the standard IO. "cout" - Outputs text (like printing to a terminal). By default, these are synchronized with C's "scanf" and "printf" functions. When we use "cout" to print something, our C++ layer communicates with the C stdio layer to keep them…

Prompt Engineering: Sharing a Prompt for Preparing Your Exams

A Universal AI Exam Preparation Prompt Template An AI Practice Prompt for Any Certification Exam A General-Purpose AI Exam Coach Prompt (For All Types of Exams) An AI Exam Preparation Prompt for Any Exam Turn AI into Your Universal Exam Coach How I Use This Prompt to Prepare for Various Certification Exams An AI Exam Coach Prompt That Works for Any Exam One Prompt to Handle All Your Exam…

System Design: Fan-out/Fan-in Pattern

Fan-out/fan-in refers to the pattern of executing multiple units of work in parallel and then synchronizing on their completion. While it’s often discussed in the context of serverless functions, the concept is not limited to them. More generally, fan-out/fan-in describes a concurrency pattern that can be applied wherever tasks can be decomposed into independent pieces—such as threads, processes,…

ChatGPT: New Image Creation (art school)

ChatGPT has a new feature "Image Generation" which allows you to easily transform exist images with a predefined set of prompts. You then don't need to prepare the prompts. Rather, all you need is to select an image and a pre-defined "style" which contains the prompt. Click "Images" from Left Navigation Bar [caption id="attachment_157692" align="alignnone" width="1318"] ChatGPT's new Image…

Understanding std::transform_reduce in Modern C++

Understanding std::transform_reduce in Modern C++ std::transform_reduce is a powerful C++17 algorithm that combines the functionality of transform and reduce (or accumulate ) in a single pass. It allows you to apply a transformation to elements and then reduce them using a binary operation, which can help write concise and efficient code. Syntax template<class InputIt1, class InputIt2, class T,…

WordPress: How to Output Full Text in the Feed?

How to Make WordPress RSS /feed Output Full Text WordPress RSS Full Content Output Guide How to Show Full Text in WordPress RSS Feeds WordPress: Three Ways to Output Full Content in RSS Feeds A Complete Guide to Enabling Full Text Output in WordPress /feed RSS Only Shows Excerpts? How to Switch to Full Text (Settings/Code/Plugins) Configuring Full Text Output in WordPress RSS: Settings, Code, and…

Nvidia, I’m coming again — this time I’m tougher

[caption id="attachment_157652" align="alignnone" width="1536"] Nvidia[/caption] Friends who know me well know that I have been persistently interviewing, but now I only target big tech companies. If it’s not a big company, I won’t interview. This is not arrogance, but reality: after Microsoft Research Cambridge / MSRC , there are indeed only a few places left that can really help me keep growing.…

Introduction to Parquet Files, Read/Write using Python

Introduction to Parquet Files Reading and Writing Parquet Files with Python Big Data Storage Optimization: Understanding Parquet Essential Parquet Handling Tips for Python Data Analysis Columnar Storage Insights: Parquet Files and Performance Working with Nested Parquet Data using Python and PyArrow From CSV to Parquet: A Python Data Format Conversion Guide What is a Parquet File? Parquet is a…

Implement a Lock Acquire and Release in C++

Implementing a Spinlock Using the Atomic TAS Instruction Implementing a Spinlock Using the Atomic TAS Instruction Building a Spinlock from Scratch with Atomic TAS Implementing a Minimal Mutex Using Test-and-Set Inside Spinlocks: TAS, Atomicity, and Busy Waiting Atomic Operations and Spinlocks: Thread Synchronization in C From Atomic Instructions to Locks: A Complete Guide to TAS and Spinlocks…

Cambridge Science Park: Microsoft, AMD and Raspberry Pi (Neighbours)

Microsoft has two offices in Cambridge. One is located right across from the railway station at 21 Station Road, with Amazon’s office next door and Apple’s new building recently opened just beside it. The other office is part of Microsoft Research, situated in Cambridge Science Park at number 198. This office likely originated from Microsoft’s acquisition of MetaSwitch, and naturally became part…

Understanding the Sigma Function: Divisors, Multiplicativity, and the Formula

Understanding the Sigma Function: Divisors, Multiplicativity, and the Formula Understanding the Sigma Function: From Divisors to a Powerful Closed Formula Why the Sigma Function Is Multiplicative: A Step-by-Step Derivation The Mathematics Behind σ(n): Divisors, Prime Powers, and the Product Formula A Deep Dive Into the Sum-of-Divisors Function (σ): Theory + Python Code Decoding σ(n): The Elegant…

Why Parallelism Isn’t Infinite: Amdahl vs Gustafson Explained Simply

Amdahl’s Law vs. Gustafson’s Law — Full Tutorial with Derivations, Use Cases, and Python Plot Amdahl’s Law vs Gustafson’s Law: Full Tutorial, Derivations, Use Cases, and Python Plot Understanding Parallel Speedup: Amdahl’s Law and Gustafson’s Law Explained with Code Parallel Computing Essentials: Amdahl’s Law, Gustafson’s Law, and Speedup Modeling How Parallel Speedup Works: Complete Guide to…

Teaching Kids Programming &#8211; Introduction to Combinatorial Mathematics 1 (Pascal Triangle/Binomial)

Introduction to Math Combination Combinations count the ways to choose items when order does not matter. This guide builds intuition from a simple grid-walking example, introduces binomial notation, derives the formula, explains the recurrence [math]C(n,m)=C(n-1,m-1)+C(n-1,m)[/math], and connects everything to Pascal's triangle . Grid walking example — paths from bottom-left to top-right Imagine…

The Hidden Engine of Performance: It’s All About Where the Data Lives (Cache is the King)

The Hidden Engine of Performance: It’s All About Where the Data Lives 1. The Real Reason Systems Are Fast: It’s All About Cache 2. Forget CPU Speed — Data Locality Wins Every Time 3. Why Cache Is the Hidden Engine of All High-Performance Systems 4. Performance Isn’t About GHz. It’s About Distance. 5. Your CPU Is Waiting on Memory: The Untold Story of Cache 6. Data Locality: The Most Important…

Deep Dive into Reinforcement Learning: Understanding the Q-Learning Algorithm

[caption id="attachment_157537" align="alignnone" width="2017"] Q Learning Algorithms (Machine Learning/AI)[/caption] Reinforcement Learning (RL) — The Art of Learning by Trial and Error Reinforcement Learning 101: The Art of Learning by Trial and Error Deep Dive into Reinforcement Learning: Understanding the Q-Learning Algorithm How Do Machines Learn to Make Their Own Decisions? Reinforcement…

Alpha Arena: How AI Performs in the Real Crypto Market

These days, an interesting experiment is drawing attention both in China and abroad — nof1.ai has launched a challenge to test how well different AI models can trade and invest in the cryptocurrency market. Right now, six top AI models are actually trading with real money to see who can earn the most profit. It’s not a simulation — it’s real money, real trades. At the moment, DeepSeek once took…

Detecting Compile-time vs Runtime in C++: if consteval vs std::is_constant_evaluated()

C++ has been steadily adding features to let programmers distinguish code that runs at compile time from code that runs at runtime. Two important tools for this are the function std::is_constant_evaluated() (C++20) and the language-level if consteval (C++23). This post explains both, shows practical examples, compares their guarantees and trade-offs, and suggests when to use each. Both techniques…

Teaching Kids Programming &#8211; Two Ways to Prove Square Root of Two is Irrational (proof by contradiction and geometric infinite descent)

How to Prove √2 Is Irrational — Two Methods (Proof by Contradiction & Geometric Infinite Descent) Introduction The statement "√2 is irrational " means there are no integers [math]a[/math] and [math]b\neq 0[/math] with [math]\gcd(a,b)=1[/math] such that [math]\sqrt{2}=\dfrac{a}{b}[/math]. Method 1 — Proof by Contradiction Assume, for contradiction, that [math]\sqrt{2}[/math] is rational. Then there…

Turn Your Raspberry Pi into a Family Network Drive: 2TB WD Hard Drive Setup for Kids’ Macs

“Create a 2TB Network Drive with Raspberry Pi for Your Family” “Raspberry Pi + WD Hard Drive: Easy Network Storage for Kids’ Macs” “Family File Sharing Made Easy: DIY Raspberry Pi Network Drive” “Turn a Raspberry Pi into a 2TB Shared Hard Drive for Home” “Save Space on Your Kids’ Macs with a Raspberry Pi Network Drive” A couple of years ago, I bought a MacBook Pro for each of my two kids. My…

Microsoft Shareholders Reject Proposal to Add Bitcoin to Balance Sheet

[caption id="attachment_157441" align="alignnone" width="714"] Bitcoin/BTC Price as of 2025-09-29[/caption] [caption id="attachment_157442" align="alignnone" width="699"] MSFT Share Price as of 2025-09-29[/caption] Every year, I receive a letter from Microsoft because I own a few shares of Microsoft stock (RSUs), which also makes me a shareholder. The letter invites me to attend Microsoft’s annual…

Chessly (British Short Hairs) Classified as Persian Cat by ResNet-50

Chessly is one of my cat, she is a British shorthairs. However, she has been categorized as a Persian Cat by the ResNet-50 Image Classification Model. [caption id="attachment_157429" align="alignnone" width="2048"] Chessly has been classified as Persian by ResNet-50.[/caption] Introduction to ResNet-50 ResNet (Residual Network) was proposed by Microsoft Research in 2015. It solves the degradation…

A Complete Guide to Radix Sort in Python with Examples

Python Radix Sort Tutorial: Sorting Integers, Negatives, and Floats A Complete Guide to Radix Sort in Python with Examples Python Sorting Algorithms: Radix Sort Explained Efficient Number Sorting in Python Using Radix Sort Radix Sort in Python: From Positive Integers to Floats Introduction to Radix Sort in Python Radix Sort is a non-comparative sorting algorithm that works by sorting numbers digit…

A Complete Guide to Sorted Data Structures in Python

Ordered data structures are very useful in programming, especially in algorithm competitions and competitive programming. In Python, the Sorted Containers library mainly provides three such data structures: SortedDict, SortedSet, and SortedList. Mastering Python’s Sorted Data Structures: From Built-ins to sortedcontainers A Complete Guide to Sorted Data Structures in Python When and How to Use…

How would you do Binary Search to Locate a Block given a TimeStamp (for Any Blockchain)?

A couple of days ago, I wanted to look up the block numbers of some important records on the STEEM blockchain — such as when I: registered my account #4253590 became a witness #20190755 mined my first block #20390040 was delegated SP by Justin Sun #41676911 and received a DAO payout #95403889 I only knew the timestamps but not the exact block numbers, so I thought of using Binary Search to locate…

This Year&#8217;s Microsoft&#8217;s Hackathon

This week, I joined Microsoft's Hackathon for the first time. In fact, big tech companies like Microsoft, Amazon, and Meta all host Hackathons every year—it’s part of their culture. Microsoft’s Hackathon usually takes place in September and lasts three days. Engineers and researchers can freely form teams to work on fun projects around the themes of “Build” and “Hack.” Three days isn’t enough to…

Microsoft&#8217;s Excel Just Got Smarter: The New Copilot Function

All in AI. Microsoft has integrated AI (Copilot) to its Office products. I’m thrilled to share that Excel has added COPILOT directly into formulas! =COPILOT(prompt,[context],...) This deceptively simple syntax brings the power of large language models (LLMs) into your spreadsheet logic—unlocking a whole new era of financial planning, analysis, and data modeling. [caption id="attachment_157371"…

How to Set Up and Test a WebSocket Server in Python with Existing CLI Tools?

Introduction to WebSockets WebSockets enable real-time, full-duplex communication between clients and servers over a single TCP connection . In this post, we'll show you how to set up a simple WebSocket server in Python and how to test it using both a Python client and popular command-line utilities like websocat and wscat . [caption id="attachment_157353" align="alignnone" width="1120"] Web…

The latest Raspberry Pi 5 comes with up to 16GB of RAM, but it’s a bit pricey.

Raspberry Pi: One of the Most Iconic Tech Symbols in the UK From Cambridge to Home Servers: The Charm and Future of Raspberry Pi Visiting the Raspberry Pi Physical Store and Prospects of a DAO Project A British Pride: Raspberry Pi and Its Innovative Uses In the UK, besides Rolls-Royce engines, London’s financial institutions, Oxford and Cambridge University, and the traditional fish and chips,…

Telegram Accounts Are Shockingly Easy to Hack Without 2FA

"How My Telegram Account Got Hacked—and What I Learned" "A Cautionary Tale: Telegram Security and 2FA" "Why You Must Enable 2FA on Telegram Immediately" "Telegram Accounts Are Shockingly Easy to Hack Without 2FA" "Don’t Make My Mistake: Telegram Without 2FA Is a Time Bomb" "99% of Hacked Telegram Accounts Have This in Common" "Telegram Security: Lessons from a Close Call" "I Trusted Telegram Too…

Fundamental mathematical formulas for machine learning (optimization): argmax Reasoning Backward from the Future

[caption id="attachment_157323" align="alignnone" width="690"] arg_max = F(x) Fundamental Machine Learning Equation[/caption] argmax: Reasoning Backward from the Future The fundamental mathematical principle behind all of machine learning (and optimization) is the following formula: arg_max_{x∈X} F(x) It means: among all possible inputs [math] x \in X [/math], find the one that maximizes the…

Why NordVPN Is the Best Choice for Online Privacy and Security in 2025

[caption id="attachment_157317" align="alignnone" width="633"] NordVPN[/caption] In today’s digital world, where our personal data is constantly at risk and internet restrictions are tightening across the globe, a reliable VPN has become an essential tool. One of the most trusted names in the VPN industry is NordVPN? —a powerful and feature-rich service designed to protect your privacy, secure…

Python match vs Traditional if-elif: A Modern Take on Switch Statements

In Python, the match keyword is used for pattern matching, introduced in Python 3.10 as part of structural pattern matching, similar to switch statements in other languages, but far more powerful. Introduction What is the match Keyword? Starting from Python 3.10, the match statement introduces structural pattern matching. It acts like a powerful switch statement found in many other languages , but…

Auditing blockchain wallet code with Copilot AI

I found that AI can be very useful for auditing code security. For example, I had been using a wallet extension that supports STEEM and Blurt, but it suddenly stopped working. Normally, I clone the source code from GitHub and load the extension locally using the “Load Unpacked Extension” option in Chrome. This method is safer because it avoids the risk of malicious code being introduced during…