Resources
17 articlesSOS is 9 tones, the full alphabet is 104: how Morse timing is calculated
How the dot-to-dash ratio becomes milliseconds: the 1200 divided by speed formula, tone counts and durations for four samples, and three places where the code table and page copy disagree.
What does a weight of 30 mean on a spinner? Sector angles and draws with or without replacement
What chance does a weight of 30 really represent? Starting from a total weight of 60, this note covers proportions, sector angles and frequencies from 300,000 simulated draws, then separates with-replacement and without-replacement probabilities and lists the input parsing rules.
Why white text on gradients is hard to read: checking WCAG contrast at every stop
White text on a gradient looks weak when one colour stop fails the contrast threshold. This note calculates white and black ratios at every stop, compares six output strings and three colour notations, and shows whether to change the text colour or add a midpoint stop.
Enlarging old photos without blur: how much detail enhancement can recover
Scanned old photos blur when enlarged because every new pixel is inferred from neighbours. This note calculates each magnification from pixel count and print size, explains the cost of sharpening, noise reduction and local contrast, and what to expect for portraits, text and graphics.
Barcodes for inventory labels: choosing between CODE128 and EAN-13
Store-made shelf labels were refused by the shop, so this note lays out the character ranges, check-digit algorithms and bar-width effects on scanning for CODE128, EAN-13 and CODE39, and explains that EAN-13 prefixes must be assigned through GS1 and cannot be invented.
Making a perler bead pattern: turning a photo into a colour chart and grid
Turning a photo into perler beads raises three questions: how many cells, which colour codes, and how many beads of each colour. This note covers the relationship between grid size and finished dimensions, the colour shift that quantisation inevitably brings, and why colour counts matter for buying supplies.
PNG to SVG still blurs when enlarged: what vectorisation can and cannot do
Converting a logo from PNG to SVG seemed to promise unlimited scaling, but the edges still showed jaggies. This note explains the difference between wrapping and tracing, how raster and vector images record information, and how threshold, colour levels and node count limit what vectorisation can achieve.
App Store screenshots: generating marketing images for a listing
Eight raw screenshots went up as-is and the visit-to-install rate was 1.9%. After redoing the images it reached 4.6%; the product did not change, but device frames, backgrounds and a readable headline did. This note includes the information plan for those eight images.
Converting SVG to PNG or JPG: rasterising vector artwork at high resolution
Handing off an SVG icon came with a list of raster sizes, and the first 32px export lost an entire stroke. This note explains what happens during rasterisation, with a size table derived from actual use cases and several common traps.
Splitting a GIF into individual images: frame-by-frame extraction
Twenty minutes of scrubbing in a player could not isolate the cover frame, until it became clear that each GIF frame has a different delay, so timestamps and frame numbers do not line up. This note records picking frames by index, choosing a cover frame and what to do after extraction.
Combining photos into a GIF: drag to reorder and set frame delay
Eight step photos became an animated GIF whose first export was 4 MB and took four or five seconds to load on the subway. Four rounds of rework clarified that size depends on dimensions and frame count, while frame delay only controls legibility. This note includes measured values for frames, delay and dimensions.
Masking phone numbers in screenshots: how to blur them properly
Thirty-seven complaint screenshots came back from legal before it clicked: redaction is not painting black, and coarse pixelation, edge remnants and missed areas in thumbnails all cause problems. This note lists must-cover items by document type and the trade-offs between local and full-image masking.