DEV Community

meng meng profile picture

meng meng

404 bio not found

Joined Joined on 
Unix Timestamp Converter: Why My Reminder Emails Fired 8 Hours Late (Python, Node, and the Browser)

Unix Timestamp Converter: Why My Reminder Emails Fired 8 Hours Late (Python, Node, and the Browser)

Comments
5 min read
Slug Generator: Cleaning Apostrophes, Ampersands and Trailing Hyphens Out of My Blog URLs

Slug Generator: Cleaning Apostrophes, Ampersands and Trailing Hyphens Out of My Blog URLs

Comments
5 min read
Age Calculator: Checking Age-Group Eligibility Against a League Cutoff Date (Python, Node, Browser)

Age Calculator: Checking Age-Group Eligibility Against a League Cutoff Date (Python, Node, Browser)

Comments
5 min read
Number to Words: Why Our Bank Rejected the Amount Line on 412 Invoices (and the Python/Node Fix)

Number to Words: Why Our Bank Rejected the Amount Line on 412 Invoices (and the Python/Node Fix)

Comments
4 min read
Markdown Preview: Why My Pipe Tables Came Out as Plain Text (and How I Ship Clean HTML Now)

Markdown Preview: Why My Pipe Tables Came Out as Plain Text (and How I Ship Clean HTML Now)

1
Comments 1
5 min read
CSV to JSON Converter: When One Quoted Comma Broke 4,112 Supplier Records

CSV to JSON Converter: When One Quoted Comma Broke 4,112 Supplier Records

Comments
5 min read
UUID Generator: Why My Lookup API Rejected Every ID Pasted From Support Emails

UUID Generator: Why My Lookup API Rejected Every ID Pasted From Support Emails

Comments
4 min read
Password Generator: Why Math.random() Passwords Get Cracked (and What to Use Instead)

Password Generator: Why Math.random() Passwords Get Cracked (and What to Use Instead)

Comments
4 min read
Hash Generator: When sha256sum -c Says FAILED but the Tarball Is Fine

Hash Generator: When sha256sum -c Says FAILED but the Tarball Is Fine

Comments
5 min read
Remove Duplicate Lines From a 48,000-Line CSV Without Losing the Original Order

Remove Duplicate Lines From a 48,000-Line CSV Without Losing the Original Order

Comments 1
5 min read
Days Between Dates: Why Our 14-Day Trial Charged Users a Day Early

Days Between Dates: Why Our 14-Day Trial Charged Users a Day Early

Comments
5 min read
BMI Calculator: Why My Health Form Called a 190 lb User Obese (and the Unit Fixes That Stopped It)

BMI Calculator: Why My Health Form Called a 190 lb User Obese (and the Unit Fixes That Stopped It)

Comments
5 min read
Base64 Decoder: My 76-Character Wrapped Webhook Payload Was Gzip All Along

Base64 Decoder: My 76-Character Wrapped Webhook Payload Was Gzip All Along

Comments 1
5 min read
Case Converter: Batch-Renaming PascalCase React Components to kebab-case Without Breaking Imports

Case Converter: Batch-Renaming PascalCase React Components to kebab-case Without Breaking Imports

Comments
5 min read
Word Counter: Why wc -w Says 564 Words When My Newsletter Limit Is 500

Word Counter: Why wc -w Says 564 Words When My Newsletter Limit Is 500

Comments
6 min read
JSON Formatter: Debugging a 4 MB Minified API Response in Python, jq, and the Browser

JSON Formatter: Debugging a 4 MB Minified API Response in Python, jq, and the Browser

Comments
6 min read
Random Number Generator: Picking 10 Giveaway Winners Nobody Can Predict (Python, Node, and the Browser)

Random Number Generator: Picking 10 Giveaway Winners Nobody Can Predict (Python, Node, and the Browser)

Comments
6 min read
Percentage Calculator: Why My KPI Email Said +1.23% When Conversion Actually Grew 159%

Percentage Calculator: Why My KPI Email Said +1.23% When Conversion Actually Grew 159%

Comments
5 min read
Image Compressor: Getting a 1.6 MB Hero JPEG Under 200 KB Without Ruining It

Image Compressor: Getting a 1.6 MB Hero JPEG Under 200 KB Without Ruining It

Comments 1
5 min read
URL Encoder / Decoder: Why My Report Link Lost Half Its Query String (and the Percent-Encoding Fix in Python, Node, and the Browser)

URL Encoder / Decoder: Why My Report Link Lost Half Its Query String (and the Percent-Encoding Fix in Python, Node, and the Browser)

Comments
5 min read
Text Diff Checker: Finding the One Line That Broke Staging in Python, Shell, and Your Browser

Text Diff Checker: Finding the One Line That Broke Staging in Python, Shell, and Your Browser

Comments
5 min read
QR Code Generator: Why My Wi-Fi QR Code Connected Nobody (and the Escaping Fix That Did)

QR Code Generator: Why My Wi-Fi QR Code Connected Nobody (and the Escaping Fix That Did)

Comments
5 min read
Unit Converter: Why 1,000 lb Became 454 kg in One Service and 455 kg in Another

Unit Converter: Why 1,000 lb Became 454 kg in One Service and 455 kg in Another

Comments
5 min read
Color Converter: Getting Hover and Dark-Mode Variants From One HEX Code in Python, Node, and the Browser

Color Converter: Getting Hover and Dark-Mode Variants From One HEX Code in Python, Node, and the Browser

Comments
5 min read
Unix Timestamp Converter: Why My Logs Said 1970-01-21 (and the Seconds vs Milliseconds Fix)

Unix Timestamp Converter: Why My Logs Said 1970-01-21 (and the Seconds vs Milliseconds Fix)

Comments
4 min read
Slug Generator: Turning Headlines Into Clean URL Slugs Without Breaking Unicode

Slug Generator: Turning Headlines Into Clean URL Slugs Without Breaking Unicode

Comments
5 min read
Age Calculator: Getting Exact Age in Years, Months and Days from a Birth Date in Python, Node.js, and Your Browser

Age Calculator: Getting Exact Age in Years, Months and Days from a Birth Date in Python, Node.js, and Your Browser

Comments
5 min read
UUID Generator: Making Collision-Safe IDs in Python, Node.js, and Your Browser

UUID Generator: Making Collision-Safe IDs in Python, Node.js, and Your Browser

Comments
5 min read
Password Generator: Create Secure Random Passwords in Python, Node.js, and Your Browser

Password Generator: Create Secure Random Passwords in Python, Node.js, and Your Browser

Comments
5 min read
Hash Generator: How to Verify a Downloaded File's SHA-256 Checksum in Python, Node.js, and Your Browser

Hash Generator: How to Verify a Downloaded File's SHA-256 Checksum in Python, Node.js, and Your Browser

Comments 1
5 min read
Base64 Encoder / Decoder: Encode UTF-8 Text Without Corrupting Unicode

Base64 Encoder / Decoder: Encode UTF-8 Text Without Corrupting Unicode

Comments
5 min read
Case Converter: Turning snake_case API Keys Into camelCase Without Breaking Acronyms

Case Converter: Turning snake_case API Keys Into camelCase Without Breaking Acronyms

Comments
5 min read
Word Counter for Writers: Counting Words, Characters and Reading Time in Python, Shell, and the Browser

Word Counter for Writers: Counting Words, Characters and Reading Time in Python, Shell, and the Browser

Comments 1
6 min read
How to Format and Validate JSON Without Installing Anything

How to Format and Validate JSON Without Installing Anything

Comments
3 min read
loading...