📝 Notes

93 articles

Many photos into one image: grid and heart-shaped collages

Turning more than 200 family photos into one image takes time mostly in selecting and deciding what to show. This note covers choosing a layout by photo count (2x2 is four-up, and the nine-grid layout means 3x3), unifying orientation, gap and radius values, the pixel budget before printing, and three things to check again.

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.

Images reused without permission: adding text or logo watermarks

Someone reposts your image and crops off the corner credit. This note separates two goals for watermarks, gives concrete values for position, density and opacity, and covers limiting export size, keeping the source file, and why ID documents should be redacted rather than covered with pale text.

Where is this IP? What location and ISP lookups can and cannot tell you

A platform warns that your account signed in hundreds of kilometres away; does that mean it was stolen? This note explains how public IP addresses are allocated, what database resolves location, and the limits: city-level accuracy, CDN and proxy effects, and no way to identify an individual.

Minified JavaScript you cannot read: beautify and format it

Production JavaScript is often minified into a single line, and the stack trace only gives an offset like 1:45210. This note covers what build minification gives up, the cost of four different ways to read it, and a practical debugging order using string anchors, semicolons and missing source maps.

What is \u4e2d? Converting Chinese text to and from Unicode escapes

A properties file full of \uXXXX escapes makes Chinese searches miss everything. This note separates four layers: code point escapes, HTML entities, URL percent-encoding and actual mojibake, with concrete numbers for Han code points, byte counts and surrogate pairs.

Binary and hex conversions keep going wrong: base 2, 8, 10 and 16

Reading 0x0E12 in a log as decimal sends the whole investigation the wrong way. This note explains that a base is just another way to write the same number, three manual methods (repeated division, positional expansion, grouping by four bits), and three traps: mismatched prefixes, lost precision on large numbers, and signed bit width.

Turning API JSON into a spreadsheet: export to Excel or CSV

Paste API JSON into Excel and it collapses into one column, usually because of structure and field types. This note covers how arrays of objects map to rows and columns, how to split nested and one-to-many data into two tables, and irreversible traps such as order numbers turning into scientific notation and garbled Chinese in CSV.

Previous 1 2 3 ... 5 6 7 Next