๐ What I read in
Week 47, 2024
- A Friendly Introduction to Container Queries
- How to win by doing things that don't scale - a winning strategy even well beyond the early days of a startup
- The Long Tail of AI - how non-AI companies are integrating artificial intelligence.
Week 46, 2024
- Introducing Copilot Edits (preview)
- The disposable web
- Why is it so hard to find a job now? Enter Ghost Jobs
- YouTube Premium Showing Ads
- ๐ด Stretch My Time Off - a quick experiment using Cursor (Anysphere's AI code editor) and GPT-4o to see how far AI could go in building a simple, functional site.
- What I Wish Someone Told Me About DB(Postgres)
- Leaving and Waving
- 100 Scrappy Things
Putting in the work without expecting any external reward at first (eg views, followers, likes, etc) will pay off in the long run. Roberto Blake was talking about making 100 crappy videos to get better over time. Putting in the reps and improving a little bit each time.
- Hundreds of code libraries posted to NPM try to install malware on dev machines
The IP address returned by a package Phylum analyzed was: hxxp://193.233.201[.]21:3001. While the method was likely intended to conceal the source of second-stage infections, it ironically had the effect of leaving a trail of previous addresses the attackers had used in the past.
Attacks like this one rely on typosquatting, a term for the use of names that closely mimic those of legitimate packages but contain small differences, such as those that might occur if the package was inadvertently misspelled.
Week 45, 2024
- New Study Reveals Blood Sugar Control is a Key Factor in Slowing Brain Aging, Highlighting the Benefits of the Mediterranean Diet
- Useful built-in macOS command-line utilities
- AI Slop Is Flooding Medium
- Attacking APIs using JSON Injection
This endpoint had no sanitization on the parameters throughout the processing of the JSON body. Moreover, the library Samsung relied on (json-c) was compiled with
JSON_TOKENER_STRICT=0
, which allows for defining strings with both single and double quotes. JSON Injection โ SQL Injection โ Buffer Overflow โ ROP = PWNED - Clarifying the Relationship Between Popovers and Dialogs
- Popover is an umbrella term for any kind of on-demand popup.
- Dialog is one type of popover โ a kind that creates a new window (or card) to contain some content.
- Modal: A dialog with an overlay and focus trapping
- Non-Modal: A dialog with neither an overlay nor focus trapping
- Alert Dialog: A dialog that alerts screen readers when shown. It can be either modal or non-modal.
- Sleep regularity is a stronger predictor of mortality risk than sleep duration: A prospective cohort study
Week 44, 2024
- Steam games will need to disclose kernel-level anti-cheat on store pages
- The Karma connection in Chrome Web Store
- How I write code using Cursor: A review
- The open secret of open washing โ why companies pretend to be open source
- Before you buy a domain name, first check to see if it's haunted
Before I bought it, the domain was used to host pirated music. Its urls were delisted by Google (and other search engines).
Week 43, 2024
- Focus on decisions, not tasks
- Practical Accessibility Tips You Can Apply Today
- Sucrose - The secret behind Elysia speed
- Tog's paradox (also known as The Complexity Paradox or Togโs Complexity Paradox) is an observation that products aiming to simplify a task for users tend to inspire new, more complex tasks.
Travel became simpler โ more vacations now involve flying a plane and thus obtaining tickets online and thus comparison-shopping, aggregating reviews of faraway places, etc โ omg, vacation travel is complex again. It just allows to fulfill more of a dream. โ nine_k
Tog's paradox is the main reason why I suspect that generative AI will never destroy art, it will enhance it. It allows you to create artworks within minutes that until recently required hours to create and years to master. This will cause new art to emerge that pushes these new tools to the limit, again with years of study and mastery, and they will look like nothing we've been able to produce so far. โ posix86
- The story of web framework Hono, from the creator of Hono
- Love being interrupted when my monitor asks me to accept user agreements
Week 42, 2024
- Iโve Been Doing Blockquotes Wrong
- I Self-Hosted Llama 3.2 with Coolify on My Home Server
- Ask HN: Solopreneurs, how did you come up with your idea?
- GOOD ENOUGH BEATS GREAT
- Explore the Maya Temples at Copรกn Ruinas
- Bike Manufacturers Are Making Bikes Less Repairable
- How I Experience Web Today
- zxcvbn - Low-Budget Password Strength Estimation
- ์ํํธ์จ์ด ํ๊ดด์ ๋ฏธํ
"์ํํธ์จ์ด ํ๊ดด์ ๋ฏธํ"์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋ด์ฌ๋ ๋ถํ์ค์ฑ์ ํ๊ตฌํ๋ฉฐ, ๋์์์ด ๋ณํํ๋ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ ์์์ ๊ฐ๋ฐ์๋ค์ด ์๋ฒฝ์ ์ถ๊ตฌํ๋ ๊ณผ์ ์์ ์ง๋ฉดํ๋ ์ด๋ ค์์ ๊ฐ์กฐํฉ๋๋ค. ์ด ๊ธ์ ๊ฐ๋ฐ์๋ค์ด ํ์ง์ ์ํด ๋ ธ๋ ฅํ์ง๋ง ๋ณต์กํ ๋น์ฆ๋์ค ์ญํ์ ์ง๋ฉดํ๋ฉด์ ๊ธฐ์ ๋ถ์ฑ๊ฐ ๋ฐ์ํ๋ ๊ณผ์ ์ ์ค๋ช ํฉ๋๋ค. ๋ํ Kano ๋ชจ๋ธ์ ์ฐธ์กฐํ์ฌ ๊ณ ๊ฐ ๋ง์กฑ๋๊ฐ ์๊ฐ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ๋ณํํ๋์ง, ํ๋ ๋งค๋ ฅ์ ์ด์๋ ๊ธฐ๋ฅ๋ค์ด ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋์ฌํญ์ด ๋๋ ๊ณผ์ ์ ๋ณด์ฌ์ค๋๋ค. ์ด ๊ธ์ ์ฝ๋๊ฐ ๊ฒฐ๊ตญ ์๋์ ๋ค์ฒ์ง ์๋ฐ์ ์๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ด๊ณ , ์ด๋ฌํ ๋ถ๊ฐํผ์ฑ์ ์์ํ๊ณ ๋ฐ์๋ค์ด๋ ๋ง์๊ฐ์ง์ธ "Destruction-Oriented Development"์ ๊ฐ๋ ์ ์๊ฐํฉ๋๋ค.
- FLUX is fast and it's open source
- It made me $500k but I think content is a bad business
- Working From Home Is Powering Productivity
- While hybrid work may have a neutral impact on individual productivity, its macroeconomic effects are positive due to broader labor market inclusion and lower transportation emissions.
- Positive benefits include reduced commuting time and a quieter, less interrupted working environment
- Reduced time in the office may reduce ability to learn, innovate, and communicate
- No net productivity impact as positive and negative effects offset each other
The impact of fully remote working, which has been adopted by about 10 percent of employees, is highly dependent on how well itโs managed.
- While hybrid work may have a neutral impact on individual productivity, its macroeconomic effects are positive due to broader labor market inclusion and lower transportation emissions.
- 1 bug, $50k in bounties, a Zendesk backdoor
Week 41, 2024
- The Copenhagen Book
- Automating Processes with Software is HARD
- Many people underestimate the fragility of automated systems, which can fail due to unexpected inputs or tool malfunctions.
- the author stresses the importance of human oversight, especially in high-stakes areas.
- Ironies of Automation
- An Illustrated Proof of the CAP Theorem
The CAP Theorem is a fundamental theorem in distributed systems that states any distributed system can have at most two of the following three properties.
- Consistency
- Availability
- Partition tolerance
- Practices of Reliable Software Design
- A modest critique of Htmx
- ABC News hacks into popular robot vacuum, watches owner through camera
- Valetudo is a cloud replacement for vacuum robots enabling local-only operation.
- Rust is rolling off the Volvo assembly line
- Selling to Carol: Why targeting an ICP brings 10x more customers than you expected
- Nearly all of the Google images results for "baby peacock" are AI generated
- The Rise of Worse is Better
- ARIA DevTools
- Google must crack open Android for third-party stores, rules Epic judge
Epic's "First Run" program does all the things they got mad at Apple and Google about. You don't have to pay any license fees for Unreal Engine if you use Epic exclusively for payments. They give you 100% revshare for 6 months if you agree to not ship your game on any other app store.
Let's not kid ourselves, Epic never cared about consumer choice or a fair playing field, they only want the ability to profit without having to invest in building a hardware platform. โ mike_d
- AI won't replace human devs anytime soon (twitter.com/skeptrune)
- AI is an impediment to learning web development
- Apple releases Depth Pro, an AI model that rewrites the rules of 3D vision
- Gen AI Makes Legal Action Cheap โ and Companies Need to Prepare
- Tauri 2.0 Stable Release
If you check any of the boxes below, you should use Tauri:
- Do you want a single UI codebase for all platforms?
- Do you want to reach as many users as possible on their platform (eg. Windows, MacOS, Linux, Android, iOS)?
- Are you a frontend web developer and want to write native applications?
- Are you a Rust developer looking to write applications with a nice looking UI with the option to do it in Rust?
- Do you have an existing team of web developers and want to expand to native application markets with low upfront investment?
- Do you have an existing team of rustaceans and want everything written in Rust?
Week 40, 2024
- Double your specificity with this one weird trick
.checkbox__icon.checkbox__icon
"Repeated occurrences of the same simple selector are allowed and do increase specificity." โ CSS Selectors Level 4
- The problem with superscripts and subscripts
- Introducing TODS โ a typographic and OpenType default stylesheet
- Solarized - Precision colors for machines and people
- Why Gumroad Didn't Choose htmx
- Bots, so many Bots
- Bop Spotter
- Meta fined $102 million for storing passwords in plain text
- Too much efficiency makes everything worse: overfitting and the strong version of Goodhart's law
Week 39, 2024
- NIST will standardise prohibition of requirement of composing passwords from various character styles, and requirement for periodic password changes.
- Dark Patterns - Hall of Shame
- Improving rendering performance with CSS
content-visibility
- This final solution achieved around a 45% performance improvement in both Chrome and Firefox, reducing the load time from 3 seconds to 1.3 seconds.
- While satisfied with the content-visibility approach, the author acknowledges that a true virtual list implementation would likely provide even better performance, especially for larger datasets.
- McDonaldโs touchscreen kiosks were feared as job killers. Instead, something surprising happened
- a โfeatureโ Apple added that auto-corrects file extensions.
- It is hard to recommend Google Cloud
- How startups beat incumbents
- Forbes Marketplace: The Parasite SEO Company Trying to Devour Its Host
- Math4Devs
Week 38, 2024
- Drift towards danger and the normalization of deviance - systemic migration of organizational behavior toward accident under the influence of pressure toward cost-effectiveness in an aggressive, competing environment
- AI tool cuts unexpected deaths in hospital by 26%, Canadian study finds
- rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
- Fuck founder mode. Work in "Fuck off mode".
- Oracle, itโs time to free JavaScript.
- The HTTP QUERY Method
- Logical Properties in Size Queries
- Animate to height: auto; (and other intrinsic sizing keywords) in CSS
Week 37, 2024
- CSS display contents
- I Wish I Didn't Miss the '90s-00s Internet
- Why some of us like "interdiff" code review
- Why Not Comments
- The "why not" comments are valuable for documenting negative information - things that the code is not doing.
- "Why not" comments can serve as signposts for future optimization or changes, even if the current code is working fine.
- Lengthy function/variable names cannot fully replace "why not" comments, as they cannot capture the tradeoffs and reasoning behind the code.
- The author suggests that "why not" comments may be a form of "counterfactuals" in human communication, which are difficult to self-document in code.
- Just for Fun (2022)
I've often described my motivation for building software to others using imagery: I like to go find a secluded beach, build a large, magnificent sand castle, and then walk away. Will anyone notice? Probably not. Will the waves eventually destroy it? Yep. Did I still get immense satisfaction? Absolutely. โ aliasxneo
- CSS :has() performance - Browsers are really good at doing style recalculation. This isn't something we need to worry about. ๐
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ํ๋กํ ํ์ ์ ์ ํํ์๊น
- The Effects of Generative AI on High Skilled Work: Evidence from Three Field Experiments with Software Developers
- Inside ECMAScript: JavaScript Standard Gets an Extra Stage
Week 36, 2024
- (Life) Advice From The Creator of C++
- Paragraphs
- What's Functional Programming All About?
- Should truckers be allowed to sing along with the radio?
- Greppability is an underrated code metric
- CSS finally adds vertical centering in 2024
- Founder Mode
Week 35, 2024
Week 34, 2024
- Ikea's Inventory Drones Expansion
- Algorithms we develop software by
- Bun ใฏ Node ใใ้ใใฎใ๏ผ Misskey ใงๆค่จผ
- croc is a tool that allows any two computers to simply and securely transfer files and folders. AFAIK, croc is the only CLI file-transfer tool
- Flaw has Microsoft Authenticator overwriting MFA accounts, locking users out
Week 33, 2024
- Line-breakable and CSS ruby-align property
- Chinaโs total wind and solar capacity outstrips coal, Rystad says
Week 32, 2024
- SVG Viewer is an online tool to view, edit and optimize SVGs.
- Happy 33rd birthday the world's first website!
- Cringey, But True: How Uber Tests Payments In Production
- 70% of new NPM packages in last 6 months were spam
- How I Use "AI"
- Organic Maps: Offline Hike, Bike, Trails and Navigation
- Introducing GitHub Models: A new generation of AI engineers building on GitHub
- How Google handles JavaScript throughout the indexing process
Week 31, 2024
- Donโt Let Your Domain Name Become a โSitting Duckโ
- Creativity Fundamentally Comes From Memorization
- GlazeWM is a tiling window manager for Windows inspired by i3 and Polybar.
- Meta to pay Texas $1.4 billion for using facial recognition technology without usersโ permission
- Dear AI Companies, instead of scraping OpenStreetMap, how about a $10k donation?
- Children should be allowed to get bored, expert says
- Have It All: External, Styleable, & Scalable SVG
- Europe Is in Danger of Regulating Its Tech Market Out of Existence
- Get The Screen Width & Height Without JavaScript
- Why "page.goto()" is slowing down your Playwright tests
- Youโll Write Less Code With Svelte 5.0, Promises Rich Harris
- Zstandard, or zstd as short version, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios.
Week 30, 2024
- AI crawlers need to be more respectful
- Generating sudokus for fun and no profit
- Anchor Links and How to Make Them Awesome
- CSS Grid Areas
- Anyone can Access Deleted and Private Repository Data on GitHub
- don't use private forks. Copy the repository instead. #
- the only way to securely remediate a leaked key on a public GitHub repository is through key rotation.
- Google Is the Only Search Engine That Works on Reddit Now Thanks to AI Deal
- Switzerland now requires all government software to be open source
- Intent to End OCSP Service
- rrweb - record and replay the web
- TablePlus - Database management made easy
Week 29, 2024
- Donโt Use Webโขdev for Accessibility Info
- I'm All-In on Server-Side SQLite
- Researchers: Weak Security Defaults Enabled Squarespace Domains Hijacks - "Wait, what if the user's email address isn't verified?"
- Google's Gemini AI caught scanning Google Drive hosted PDF files without permission โ user complains feature can't be disabled
- "Firefox added [ad tracking] and has already turned it on without asking you"
- As an Employee, You Are Disposable
- Dear AWS, please let me be a cloud engineer again
- A Bunch of Programming Advice Iโd Give To Myself 15 Years Ago
Week 28, 2024
- Engineering Principles for Building Financial Systems
- If AI chatbots are the future, I hate it
- Second Factor SMS: Worse Than Its Reputation - Attackers can intercept SMS one-time passwords through techniques like SIM swapping or exploiting SS7 network vulnerabilities.
- Spot the Drowning Child
- SEQUOIA - Adapting to Endure
- Google Chrome gives all .google.com sites full access to system / tab CPU usage, GPU usage, and memory usage. It also gives access to detailed processor information, and provides a logging backchannel. This API is not exposed to other sites - only to .google.com. โ #
- Rye is a comprehensive project and package management solution for Python.
- Reverse engineering Ticketmaster's rotating barcodes
- I'm Funding Ladybird Because I Can't Fund Firefox
- How to think in writing: Part 1: The thought behind the thought
If your goal is to probe the validity of your thoughts, this is painfully inefficient. You'll get much further if you do one or two simple passes on your writing, and then pass what you've written around and ask for feedback. โ BeetieB
- Why privacy is important, and having "nothing to hide" is irrelevant
- Identity Crisis: Sequence v. UUID as Primary Key
- Radio Garden
Week 27, 2024
- Cardiorespiratory fitness is a strong and consistent predictor of morbidity and mortality among adults: an overview of meta-analyses representing over 20.9 million observations from 199 unique cohort studies
- Woodworking as an escape from the absurdity of software
- HTMX does not play well with content security policy
- Why Is Chile So Long?
- gRPC: The Bad Parts
- Edna is a scratchpad for developers. It's a large persistent text buffer where you can write down anything you like. Works great for that Slack message you don't want to accidentally send, a JSON response from an API you're working with, notes from a meeting, daily to-do list, etc.
- KT 60๋ง๋ช ํดํน์ ์ฌ๊ฐ์ฑ: ์ฌ์ ์ต์ ์ ์ฌ์ด๋ฒ ๋ฒ์ฃ๋ก๋ถํฐ ๋น์ ์ ์ง๊ธ๋ ์์ ํ์ง ์๋ค
- Building an AI-Native Company
- Teo is schema-driven web server framework. The server side API is native to Rust, Node.js and Python.
- ๋ง์ด๋ฆฌ์ผํธ๋ฆฝ์ผ๋ก ์ดํด๋ณธ ์ฌํ ์ฐ์ ์์์ SEO, ํค์๋ ์ฑ๊ณผ ๋ถ์ ์ค์์ฑ
- Microsoftโs AI boss thinks itโs perfectly okay to steal content if itโs on the open web
Week 26, 2024
- Liquid Layers
- Pop!_OS is an operating system for STEM and creative professionals who use their computer as a tool to discover and create. Unleash your potential on secure, reliable open source software.
- A Three-Step Framework For Solving Problems ๐
- What is Jobs to be Done (JTBD)?
Upgrade your user, not your product. Donโt build better cameras โ build better photographers.
โ Kathy Sierra - Reshot - Free Icons & Illustrations Design freely with instant downloads and commercial licenses.
- 1-click Exploit in South Korea's biggest mobile chat app
- dotenvx - a better dotenvโfrom the creator of
dotenv
.- run anywhere (cross-platform)
- multi-environment
- encrypted envs
- Microsoft Account to local account conversion guide erased from official Windows 11 guide โ instructions redacted earlier this week
- Readme Driven Development
- Windows 11 is now automatically enabling OneDrive folder backup without asking permission
- Ruby: a great language for shell scripts!
- llama.ttf is a font file which is also a large language model and an inference engine for that model.
- ํจ๊ปํด์ ํ์ด์ฌ ์ํ๊ณ
- EntityCode
Week 25, 2024
- DB Browser for SQLite
- Google Gemini tried to kill me
- Cyber Scarecrow
- Twitterโs Clumsy Pivot to X.com Is a Gift to Phishers
- Mocking is an Anti-Pattern - Mocking is an anti-pattern. Mocking adds complexity, is hard to maintain, introduces its own bugs, doesn't test what should be tested and creates a false sense of security. Several things you can do instead:
- More unit testing
- Easier to Test IO
- Just do IO
- Separation of logic and services / IO
- E2E integration tests
- ์ข์ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ง๋๋ 6๊ฐ์ง ์์น
- Start Presentations on the Second Slide
- Do not try to be the smartest in the room; try to be the kindest.
- How Stripeโs document databases supported 99.999% uptime with zero-downtime data migrations
Week 24, 2024
- CSS Length Units
- Fine-tuning Text Inputs
- Cap Unit
- Group chats rule the world
โ Salons and groups have always existed but why the recent shift to private discourse?
Because the public internet makes it too easy for people to sell you stuff, extract value from you, or harass you. Private chats are human-scale environments where understandable social norms---not commerce, algorithms, or formal rules---drive the interactions. It's an authentic experience. # - The Expanding Dark Forest and Generative AI
As AI takes over the public internet (the trees) the people will retreat to safe underground spaces where they know only authentic humans live. #
- Microsoft Chose Profit Over Security and Left U.S. Government Vulnerable to
- RunCat - The cat tells you the CPU usage of Mac by running speed.
- Boop. - A scriptable scratchpad for developers.
- AlDente - Charge Limiter๐ - MacOS menu bar tool to limit maximum charging percentage
- Study shows N95 masks near-perfect at blocking escape of airborne COVID-19
- UUIDv7: The Time-Sortable Identifier for Modern Databases
- SQLite As An Application File Format
- AeroSpace is an i3-like tiling window manager for macOS
- ANTI-CHEAT EXPERT: ALL YOUR PIXELS ARE BELONG TO US
- "Web components" considered harmful
It's better to use the specific names (custom elements, shadow DOM, templates) instead of the umbrella term "web components" to avoid confusion and make these APIs more approachable.
- "AI-powered" has become a red flag
- Keylogger discovered in image generator extension
- Microsoft Will Switch Off Recall by Default After Security Backlash
Satya Nadella told the entire Microsoft org that if anyone had to choose between features and security, to choose security. I'm hearing from Microsoft people that all product roadmaps are deferred for a few months while security features are addressed. Their whole corporate spiel is "Microsoft runs on trust" (see the famous standards of business training on youtube).
And then someone goes and invents Recall. This is not the work of a lone engineer and a principal PM fishing for Impact or whatever they call success at Microsoft. This had to have gone through multiple levels of review. Microsoft PMs, CVPs, their corpo legal people, marketing approval. And yet no one stopped to say, "wait, this could blow up in our faces"? โ https://news.ycombinator.com/item?id=40615205
- Cancel Adobe if you are a creative under NDA with your clients
Week 23, 2024
- Should I Use JWTs For Authentication Tokens?
They are designed for large-scale environments like Google and Facebook, where the benefits of JWTs (not needing to query a user database for every request) outweigh the drawbacks. However, for most applications that process less than 10,000 requests per second, the complexity of JWTs is unnecessary. A simpler approach is to use a normal opaque session token stored in a database, which is the approach used by most web frameworks.
- ๋ชจ๋๋ฅผ ์ํ ๋์์ธ
- LLMs Arenโt Just โTrained On the Internetโ Anymore
- Stealing everything youโve ever typed or viewed on your own Windows PC is now possible with two lines of code โ inside the Copilot+ Recall disaster.
Week 22, 2024
- Polyfill.io, ์ค๊ตญ CDN ๊ธฐ์ ์ ์ธ์๋ ํ ๋ณด์ ๋ฐ ์์ ์ฑ ๋ฌธ์ ๋ฐ์
- Why, after 6 years, Iโm over GraphQL
- Three Laws of Software Complexity
- A well-designed system will degrade into a badly designed system over time.
- Complexity is a Moat (filled by Leaky Abstractions).
- There is no fundamental upper limit on Software Complexity.
- An Anonymous Source Shared Thousands of Leaked Google Search API Documents with Me; Everyone in SEO Should See Them
- Your API Shouldn't Redirect HTTP to HTTPS
- Redirection can lead to sensitive data being transmitted in plaintext before the encrypted connection is established.
- Terminal Text Effects
- Doing is normally distributed, learning is log-normal
- Software estimation is challenging because it fails to recognize that learning is non-normally distributed.
- Bubble.ai
- Google scrambles to manually remove weird AI answers in search
Week 21, 2024
- iTerm2 and AI hype overload
A terminal emulator is probably one of the most privileged programs. It deals with all the secrets in the world, and the threat that it could be used to upload them all to a third party is great enough that people are willing to switch away from it sight unseen.
not letting you use local models
- Leaked OpenAI documents reveal aggressive tactics toward former employees
- Improvements to the Speculation Rules API which allows websites to prefetch or prerender future navigations to improve performance.
- QPick.app website for making random choices easy and fun!
- Rethinking Text Resizing on Web
- Airbnb has made improving web accessibility a priority, focusing on the WCAG 1.4.4 Resize Text guideline. This guideline is important for users with low vision, as it requires web content to be maintained when text is scaled 200%.
- New alternatives to innerHTML
setHTML
setHTMLUnsafe
does not perform input sanitization. The setHTMLUnsafe method is particularly useful for working with declarative shadow DOM, where the contents of a<template>
element with the shadowrootmode attribute need to be rendered as shadow DOM. The setHTML method would remove the template element entirely, whereas setHTMLUnsafe preserves it.
- A Brief Note on Highlighted Text
If you plan to style text highlighted by the browser, you must give it sufficient contrast โ 3:1 for the highlight block against its background and (probably) 4.5:1 for the text within that highlighted block against that background.
- Target=_blank implies rel=noopener
- Thinking out loud about 2nd-gen Email
- Files - Building the best file manager for Windows
Week 20, 2024
- A Front-End Engineer's Take on LLMs
the indeterminism and unreliable behavior of LLMs, which is unlike the deterministic nature of typical software development. The author thinks prompt engineering will go the way testing is going. - be a skill rather than a discipline
- The Times You Need A Custom @property Instead Of A CSS Variable
CSS custom properties allow developers to specify the syntax, initial value, and inheritance behavior of CSS variables. This provides more control over how variables are used, enabling advanced animations that were previously only possible with JavaScript.
- Edit PDFs for free with Firefox PDF Editor
- URLhaus is a project from abuse.ch with the goal of sharing malicious URLs that are being used for malware distribution.
- State of HTML 2023
- Not an iPad Pro Review: Why iPadOS Still Doesnโt Get the Basics Right
- 100k Stars
- PeaZip Free Archiver
- Humanoid agent robot
- Avoid blundering: 80% of a winning strategy
Week 19, 2024
- Latency numbers every frontend developer should know
- Itโs always TCP_NODELAY. Every damn time. argues that in modern distributed systems, Nagle's algorithm may no longer be necessary. The author recommends that for latency-sensitive distributed systems, TCP_NODELAY should be the default setting, as it provides better performance.
- Deaf girl is cured in world first gene therapy trial
- Homebrew vs. MacPorts, A Systems Software Engineer's Perspective
In practice, many engineers use both package managers to combine the strengths of each. For instance, use Homebrew for common software and MacPorts for specialized projects.
- chezmoi - Manage your dotfiles across multiple diverse machines, securely.
- Distribution is King - What video games can teach us about building billion-dollar companies
- Your 14-Day Free Trial Ain't Gonna Cut It
For Keygen, p50 TTC(Time-to-Convert) is 41 days. My p90, 130 days; p95, 198; p99, 290.
- JSONata JSON query and transformation language
- โI will never go backโ: Ontario family doctor says new AI notetaking saved her job
Week 18, 2024
- You receive a call on your phone. The caller says they're from your bank
- I Reviewed 1,000s of GraphQL vs. REST perspectives
- I Reviewed 1,000s of Opinions on HTMX
- jsDelivr May outage postmortem
- Locality of Behavior in React Components
Abstractions are not an enemy of locality. You donโt need to inline everything in a single file. In the context of a React component, the invocation of the function is more important than what it actually does.
- Forms 101: More tags useful in forms -
<fieldset>
,<legend>
- Form fields: File input fields
- Form fields: Autocompleting form fields
- Google Made Me Ruin A Perfectly Good Website: A Case Study On The AI-Generated Internet
Google's AdSense program rejected the site, claiming it lacked unique content. To get approved, the author resorted to generating low-quality, AI-written content like recipes, poems, and blog posts about their fictional obsession with congressional apportionment. After creating this deranged additional content, Google eventually approved the site for ads. The passage is a critique of how Google's policies are leading to the proliferation of low-quality, SEO-driven content on the internet.
- SVG Viewer โ View, edit, and optimize SVGs
- What can LLMs never do?
inability to perform certain tasks that seem simple for humans, like playing Wordle or predicting the output of cellular automata.
- World Wide Web (1991)
- Leaving Rust gamedev after 3 years
Rust's strengths do not always align well with the needs of practical game development.
- Passkeys: A Shattered Dream
The technology has become increasingly controlled by major tech companies like Google and Apple with problems about device compatibility, data loss, and vendor lock-in. Password managers may provide a better user experience for most consumers.
Week 17, 2024
- CSS: Specificity
- TDD's Missing Skill: Behavioral Composition
- The Man Who Killed Google Search
- Cognition Labs: "Today we're excited to introduce Devin, the first AI software engineer.
- They actually dont do ANYTHING themselfs - Analytics: Hotjar, Website: NextJS, Login: Clerk, Jobs: Ashby, Waitlist: Google docs (ROFL), Learn more about their funding: A link to twitter
- Programming Is Mostly Thinking
- Coroutines and effects
Week 16, 2024
- Why you need a "WTF Notebook"
- The invisible seafaring industry that keeps the internet afloat.
- NEVER sacrifice your life for an artificial deadline.
- How to determine if something is an artificial deadline? Because if it were a real deadline with significance to the business, they'd pull more hands on deck, remove roadblocks relentlessly day after day, and even offer to take portions of your work on themselves so that the deadlines can be met.
- HTMX Is So Cool I Rolled My Own!
- The Wax and the Wane of the Web
- My favourite animation trick: exponential smoothing avoids issues like jittering or overshooting that can occur with other methods.
- DevTools Tips & Tricks
- Gap is the new Margin
Margin breaks component encapsulation. A well-built component should not affect anything outside itself.
Prediction: margins in stylesheets will decline as gap in stylesheets climb - Hardest Problem in Computer Science: Centering Things
STOP. USING. FONTS. FOR. ICONS.
- https://ios404.com/ - missing web features in iOS
- Hono is a small, simple, and ultrafast web framework for the Edges. It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, AWS Lambda, Lambda@Edge, and Node.js.
- Old CSS, new CSS
<H1><FONT COLOR=red>...</FONT></H1>
โฆevery single goddamn time.is in fashion again! Only now itโs called class="text-red-500" :o)
Week 15, 2024
- QCon London: How Duolingo Sent 4 Million Push Notifications in 6 Seconds During the Super Bowl Break
- QWANJI
- The Power of :has() in CSS
h1:has(+ h2) { color: blue; }
- How to Kill the Cascade
- In-app browsers are still a privacy, security, and choice problem
- How to think about HTML responsive images
<picture> <source media="(prefers-color-scheme: dark)" srcset="macos-dark.png" /> <source media="print" srcset="macos-contrast.png" /> <img src="macos-light.png" alt="โฆ" /> </picture>
- The 37signals Guide to Internal Communication
Week 14, 2024
-
An Interactive Guide to CSS Container Queries
/* Try to add more items and see what happens. */ .timelineWrapper { container: timeline / inline-size; --force-vertical: false; &:has(.c-timeline__item:nth-last-child(n + 5)) { --force-vertical: true; } }
@container timeline (inline-size > 430px) and style(--force-vertical: false) { /* Apply the full variation. */ }
-
Reddit Migrates Media Metadata from S3 and Other Systems into AWS Aurora Postgres
-
JavaScript Visualized: Promise Execution
Long story short, Promises are just objects with some additional functionality to change their internal state.
The cool thing about Promises is that this can trigger an asynchronous action if a handler is attached by either then or catch. Since the handlers are pushed to the Microtask Queue, you can handle the eventual result in a non-blocking way. This makes it easier to handle errors, chain multiple operations together, and keep your code more readable and maintainable!
-
Kobold Letters - Why HTML emails are a risk to your organization
-
Spicing up text with text-emphasis in CSS
.text-emphasis-dollar { text-emphasis: "$" lime; text-emphasis-position: under; }
-
CSS scoping from What You Need to Know about Modern CSS (Spring 2024 Edition)
-
CSS Button Styles You Might Not Know
The manipulation value disables gestures like โdouble-tap to zoomโ. Other gestures like โpanningโ and โpinch to zoomโ are unaffected. An extra benefit is that the browser no longer needs to delay the click event waiting for a second tap.
.button,::file-selector-button { inline-size: fit-content; touch-action: manipulation; user-select: none; } *:focus-visible { outline: 2px solid magenta; outline-offset: 2px; } }
-
The author suggests that the real problem is often data hoarding rather than true "Big Data" challenges. Overall, the passage contends that the Big Data hype has passed and organizations should focus on using their data effectively rather than worrying about sheer data volume.
-
Postgres is eating the database world
PostgreSQL is emerging as a dominant database platform that is capable of handling a wide range of use cases, from OLTP to OLAP workloads. Its extensibility through a thriving ecosystem of add-ons and integrations allows it to compete with specialized databases across various domains like time-series, geospatial, and vector data. The rise of analytical extensions like ParadeDB and DuckDB have further bolstered PostgreSQL's capabilities, making it a viable alternative to dedicated data warehousing solutions. As hardware advancements have addressed performance and scalability concerns, the need for separate OLTP and OLAP systems is diminishing, leading to a convergence where PostgreSQL can serve as a unified, multi-model database. The author argues that the real competitive frontier now lies in leveraging PostgreSQL's extensibility through integrated distributions and services, rather than focusing on the core database kernel.
-
The power of CSS Variables ๐ช: A flexible solution for spacing utilities
<div style="--space-top: 30px; --space-bottom: 100px;"></div>
@media (min-width: 992px) { [style*="--space-bottom"] { margin-bottom: var(--space-bottom); } [style*="--space-top"] { margin-top: var(--space-top); } }
-
What is safe alignment in CSS?
.flex { display: flex; align-items: safe center; }
-
LiveView is a unique approach to building web applications that combines the benefits of server-rendered and client-side frameworks. While LiveView offers many advantages, the authors found some limitations around handling complex client-side interactions and the blurry line between client and server state. To address these challenges, the authors describe using LiveView together with the Svelte frontend framework, which they found to be a powerful and productive combination. The LiveView backend handles data fetching, validation, and state management, while the Svelte frontend focuses on rendering and simple event handling. This "LiveSvelte" approach eliminates the need for a separate frontend microservice and allows for a clean separation of concerns between the client and server.
One possible solution which I didn't investigate, but should work, is to write all game logic in gleam (https://gleam.run/). Gleam is compatible with Elixir, AND it also can compile to js, so you could in theory run the same code on the server and the client. โ POiNTx
-
HTTP Speed - Deno, Bun, Node.js
-
Alpine Ajax - Comparisons between Alpine AJAX and other similar libraries
-
WebSockets vs Server-Sent-Events vs Long-Polling vs WebRTC vs WebTransport
Week 13, 2024
- You Want border-color: transparent, Not border: none
@media (forced-colors: active)
- There is no EU cookie banner law
- Why choose async/await over threads in Rust? explains how async/await allows for more composable and flexible concurrency compared to threads, which can be difficult to synchronize. The author argues that the benefits of async/await, such as its ability to easily add timeouts and other functionality, are not always well-communicated.
- Game of Life, simulating itself, infinitely zoomable
- https://www.libhunt.com/css
Week 11, 2024
- mise-en-place - dev tools, env vars, task runner
- Flox is a virtual environment and package manager all in one.
- You should separate your billing from entitlements
- 5 things I learned while developing a billing system
- Devin: AI Software Engineer - comments
- Designing better target sizes
- Techniques to Break Words
- Probably donโt add
­
without guidance from a copywriter. - Probably donโt add
­
to foreign words without a localization expert or at least a native speaker. - Probably donโt add
­
to URLs, email addresses, code blocks, and so on. - Probably restrict
<wbr>
to URLs, email addresses, code blocks, and similar words where technical accuracy is paramount. - Probably restrict
<wbr>
to before periods and dashes and maybe slashes in URLs and emails so it doesnโt look like the sentence or address has ended.
- Probably donโt add
- Getting Started with Style Queries
- Can't you do it with attributes?
- Bruno - Fast and Git-friendly open-source API client (Postman alternative)
Week 10, 2024
- CSS :has() Interactive Guide
- A practical guide to using shadow DOM
- Aristotle โ How to live a good life - Ralph Ammer
Happiness is not a feeling of pleasure. Happiness is the pursuit of excellence.
- CSS for printing to paper
Week 09, 2024
- Blur radius comparison
the three Sketch blur types, scaled to the equivelent CSS box-shadow value. They now all match!
- WebPerf Snippets
- So, what exactly did Apple break in the EU?
- Youtube video embedding harm reduction
<iframe credentialless allowfullscreen referrerpolicy="no-referrer" sandbox="allow-scripts allow-same-origin" allow="accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'none'; battery 'none'; browsing-topics 'none'; camera 'none'; display-capture 'none'; domain-agent 'none'; document-domain 'none'; encrypted-media 'none'; execution-while-not-rendered 'none'; execution-while-out-of-viewport ''; gamepad 'none'; geolocation 'none'; gyroscope 'none'; hid 'none'; identity-credentials-get 'none'; idle-detection 'none'; local-fonts 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; otp-credentials 'none'; payment 'none'; picture-in-picture 'none'; publickey-credentials-create 'none'; publickey-credentials-get 'none'; screen-wake-lock 'none'; serial 'none'; speaker-selection 'none'; usb 'none'; window-management 'none'; xr-spatial-tracking 'none'" , csp="sandbox allow-scripts allow-same-origin;" width="560" height="315" src="https://www.youtube-nocookie.com/embed/jfKfPfyJRdk" title="lofi hip hop radio ๐ - beats to relax/study to" frameborder="0" loading="lazy" ></iframe>
- Netlify just sent me a $104K bill for a simple static site
- Four Steps to Achieving Operational Flow and Improving Quality in Tech Teams
- Take on fewer things; focus on doing a complete job.
- Dependencies destroy flow. Break down and remove dependencies in order to improve your team(s)'s ability to get things done.
- Shift your focus toward keeping work moving and away from keeping people busy.
- Work creates ROI only when a customer can use it. That means that completing work is more important than being busy.
- It's more important for a team to be able to keep work moving than it is to keep the team small. Get work moving first, then think about how to reduce team size without compromising flow.
- Dear Developer, the Web Isnโt About You
- The web was originally simple, robust and accessible to all due to technologies like HTML working together in a layered manner.
- Performance and accessibility are major issues for many users but not priorities for most developers.
- Simple, progressive techniques like serving HTML first make sites robust and usable for all.
- The goal is caring for all people who use the web, not prioritizing new technologies.
- SaaS Payment vs. SaaS Billing - What Those Terms Mean and What the Differences Are
- ๐ฆ The 14 pains of building your own billing system
- Decoding Apple's Ploy To Scuttle Progressive Web Apps
- What is a non-capturing group in regular expressions?
- console.delight
- Quality is a hard sell in big tech
Week 08, 2024
- JavaScript Bloat in 2024
- Scroll-Driven Animations: You want overflow: clip, not overflow: hidden
- Introducing SafeTest by Netflix: A Novel Approach to Front End Testing
- ๐Securing Web: A Deep Dive into Content Security Policy (CSP)
- Using localStorage in Modern Applications: A Comprehensive Guide
- Using abbreviations for long CSS properties in VS Code
- https://www.perfectmemory.ai/
- If Architects had to work like Programmers
- Bloom Filters
- Bloom filters return true it doesn't mean "yes", it means "maybe", false-positive.
- If you're happy to accept being wrong 0.0001% of the time (1 in a million), you could use a bloom filter which can store the same data in 82% reduction in size.
- In Defense of Simple Architectures
- The Case Against Caffeine
- But it gets worse, especially if you drink lots of caffeine throughout the day. In that case, you never give your body the chance to clear it out. So the base concentration in your blood slowly creeps up. - https://zantafakari.substack.com/i/141012714/the-science-of-sleep
- htmz is a minimalist HTML microframework that gives you the power to create dynamic web user interfaces with the familiar simplicity of plain HTML.
<iframe hidden name="htmz" onload="setTimeout(()=>document.querySelector(this.contentWindow.location.hash||null)?.replaceWith(...this.contentDocument.body.childNodes))" ></iframe>
Week 07, 2024
- LLRT (Low Latency Runtime) is a lightweight JavaScript runtime designed to address the growing demand for fast and efficient Serverless applications. LLRT offers up to over 10x faster startup and up to 2x overall lower cost compared to other JavaScript runtimes running on AWS Lambda
- A Guide To Designing For Older Adults
Today, one billion people are 60 years or older. Thatโs 12% of the entire world population, and the age group is growing faster than any other group. Yet, online, the needs of older adults are often overlooked or omitted.
- How to make external links accessible
- Why external links should open in the same tab
- giving users the choice
- When external links should open in a new tab
- Lose form progress
- An alternative solution
- Terminate login
- User needs information on both pages
- Accessible design and code for external links opening in a new tab
- give users a warning that it opens in a new tab.
- Why external links should open in the same tab
- :focus vs :focus-visible
The
:focus-visible
pseudo-class also matches the focused element, but only if the user needs to be informed where the focus currently is. - The psychology of site speed and human happiness
- Apple has not fixed the macOS audio left/right balance bug for nearly 10 years
- I designed a cube that balances itself on a corner
- How to Study
- (Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup
- Classless CSS
- Drop-in switcher for previewing minimal CSS frameworks
Week 06, 2024
- SQL for the Weary
- Command Line Interface Guidelines
- Simplify: move code into database functions
- Databases outlive the applications that access them.
- the database is actually quite smart.
- examples: constraints, triggers, functions, create JSON directly.
- If you like JavaScript, check out the promising plv8.
- branching? source code history(Migrations)?
- It's Time To Get Over That Stored Procedure Aversion You Have
- Postgresql is enough
- As an application grows in complexity, you start to realize why there's a stack, rather than just a single technology to rule them all. Trying to cram everything into Postgres (or lambdas, or S3, or firebase, or whatever other tech you're trying to consolidate on) starts to get really uncomfortable.
- ... both worked: the PG queue was never grown out of, and generally SQS was easy to work with & reliable. But what I've also seen is "Let's introduce bespoke tech that nobody on the team, including the person introducing it, has experience in, for a queue that isn't even the main focus of what we're building" โ this I'm less fine with.
- People will never be motivated to go the extra mile by a standardized, bureaucratized process.
- Companies embracing SMS for account logins should be blamed for SIM-swap attacks
- Write code for the web
- Apple doesnโt care for me as a developer
- The best approach is to write code for the web, where no single company has control.
- https://news.ycombinator.com/item?id=39250406
- tints.dev - Palette Generator + API for Tailwind CSS
- The undercover generalist
- Needing to look like a specialist
- Telling people what they want to hear
- Lazy Hydration and Server Components in Nuxt โ Vue.js 3 Performance
Most of the components donโt need to be eagerly hydrated
- How to align the text of the last paragraph line
text-align-last
- Benchmarks of JavaScript Package Managers(daily updated)
Week 05, 2024
- Generally speaking, youโll want to use
text-wrap: balance
for headings andtext-wrap: pretty
for body text. - Portable Network Graphics (PNG, pronounced "ping")
- Variable Fonts
Week 04, 2024
- A Single Small Map Is Enough For A Lifetime
- iPhone Apps Secretly Harvest Data When They Send You Notifications, Researchers Find
- npm malware (@npm_malware) on X
- The problem with disabled buttons and what to do instead
- When to use CSS text-wrap: balance; vs text-wrap: pretty;
Use text-wrap: balance; on headings and subheadings. And use text-wrap: pretty; on paragraphs of text to get rid of orphans on the last line. Despite the Chromium-only support, these would be a good candidate for progressive enhancement.
- A Practical Introduction to Scroll-Driven Animations with CSS scroll() and view() - At the time of writing this, it is Chromium only.
- 12 Modern CSS One-Line Upgrades
- Stable Enhancements:
accent-color
,scroll-margin-top/bottom
-[id]
- progressive enhancement:
overscroll-behavior: contain
,scrollbar-gutter
- https://news.ycombinator.com/item?id=39176717
- Stable Enhancements:
- Should I Open Source my Company?
- What Is Nightshade? - An offensive tool for artists against AI art generators
Week 03, 2024
- PIDs: Creating Stable Control in Games
- U.S. Developers Can Now Offer Non-App Store Purchasing Option, But Apple Will Still Collect Commissions
- Teach Yourself Programming in Ten Years - Why is everyone in such a rush?
- Slashing Data Transfer Costs in AWS by 99%
AWS replicates S3 data between availability zones
- Preventing HTTPS Downgrade Attacks
- configuring servers to redirect all HTTP traffic to HTTPS and setting the HTTP Content-Security-Policy and Strict-Transport-Security headers to enforce HTTPS-only browsing
- The HSTS preload directive further strengthens security by ensuring browsers always use HTTPS for a domain
Week 02, 2024
- Use cases of soft delete
- You want to delete records, but also want to retain them for n number of days, just for a safer side against accidental deletion.
- You want to exclude some records (permanent retain) under explicit requirements, even if they match the criteria of an eligible record to be deleted.
- You don't want to delete the actual resource before returning the resource back. Basically, deletion before returning the value is not desired.
- You don't want to modify existing table schema(s) to accommodate soft delete key.
- You want the tables as loosely coupled as possible without having to worry about deletion logic.
- All JavaScript and TypeScript Features of the last 3 years
- Using the CSS contain property: A deep dive
to decrease the burden on browsers for layout calculations, paints, repaints, and reflows.
- One YouTube Embed weighs almost 1.2 MB
- Correctly Configure (Pre) Connections
- atuin - โจ Magical shell history
- Prevent unnecessary network requests with the HTTP Cache
- Understanding SVG Paths
- 6 CSS snippets every front-end developer should know in 2023
- Chrome enables desktop mode by default on premium tablets
- Zendesk Moves from DynamoDB to MySQL and S3 to Save over 80% in Costs
- Why LinkedIn chose gRPC+Protobuf over REST+JSON: Q&A with Karthik Ramgopal and Min Chen
- CSS Scroll Snapping Aligned With Global Page Layout: A Full-Width Slider Case Study
- What is Token-Based Authentication?
Week 01, 2024
- LLMs and Programming in the first days of 2024
The author discusses their extensive use of large language models for programming tasks over the past year. They find LLMs most helpful for writing disposable code, learning new frameworks quickly, and accelerating documentation searches. While useful, LLMs still struggle with system programming problems requiring complex reasoning. The author believes LLMs have begun to show rudimentary reasoning abilities through their interpolation of concepts, but their capabilities are still limited. Overall, they argue LLMs are a valuable tool for programmers that can help focus time on more important problems and skills.
- Why asking your customers what they want doesn't work
A fast food chain failed to increase milkshake sales despite adding requested elements, but succeeded by observing what "jobs" customers hired milkshakes for, such as a boring commute. Donโt listen to your customer. Watch your customer.
- Best-Practices for API Authorization
- It's not microservice or monolith; it's cognitive load you need to understand first
- Cold-blooded software
- Heynote is a dedicated scratchpad for developers
2023
2022
Children
Backlinks