What I read in 2023
Week 52, 2023
- Stop using {} in Typescript
Record<string, unkown>
{ [key:string]: unknown }
- Introducing four new international features in CSS
- From Chrome 119: Japanese phrase line breaking with
word-break: auto-phrase
. - Behind a flag from Chrome 120: Inter-script spacing with the
text-autospace
property. - Under development: Chinese, Japanese, and Korean (CJK) punctuation kerning with the
text-spacing-trim
property. - Consistent minimum font size across languages.
- From Chrome 119: Japanese phrase line breaking with
- Micro Frontend Synergy: Techniques for Effective Communication
- How Pinterest scaled to 11 million users with only 6 engineers
- Use known, proven technologies. Pinterest’s dive into newer technologies at the time led to issues like data corruption.
- Keep it simple. (A recurring theme!)
- Don’t get too creative. The team settled on an architecture where they could add more of the same nodes to scale.
- Limit your options.
- Sharding databases > clustering. It reduced data transfer across nodes, which was a good thing.
- Have fun! New engineers would contribute code in their first week.
- How Big is YouTube?
He details an experiment where he and others were able to collect over 10,000 truly random YouTube videos using an inefficient "drunk dialing" method to guess video URLs. This allowed them to estimate that YouTube contains over 13 billion videos and that 4 billion were added just in 2023.
- Google OAuth is broken (sort of)
It is possible for former employees to retain access to workplace apps like Slack and Zoom after leaving a company by creating a Google account using a plus sign email address derived from their work email. (janedoe+oldjob@company.com)
- Advice for new software devs who've read all those other advice essays
Week 51, 2023
- A Quick Guide on How to Create Accessible Buttons in HTML
- Icon with Text Buttons -
aria-hidden=true
attribute for the svg icon - Icon Buttons -
aria-label
on the button tag - ... the alternatives.
- The size of the target for pointer inputs is at least 44 by 44 CSS pixels.
- Icon with Text Buttons -
- How to use Chrome's accessibility tree
- Lost in Translation: Tips for Multilingual Web Accessibility
- WebP is so great… except it’s not
WebP was more prone to bad posterization and artifacts, especially on photos with smooth gradients.
For similar visual quality on a portrait photo, WebP was actually 30-39% heavier than JPEG.
WebP is not necessarily better than JPEG for all photographic use cases.
Week 50, 2023
- How to Use Responsive HTML Video (...and Audio!)
<video> <source media="(min-width: 2000px)" src="large.webm" type="video/webm" /> <source media="(min-width: 2000px)" src="large.mp4" type="video/mp4" /> <source media="(min-width: 1000px)" src="medium.webm" type="video/webm" /> <source media="(min-width: 1000px)" src="medium.mp4" type="video/mp4" /> <source src="small.webm" type="video/webm" /> <source src="small.mp4" type="video/mp4" /> </video>
- CSS Wrapped: 2023!
- Why it's essential to excel at the things AI excels at
- Learning areas that AI excels in, like coding, English, design and data, will provide more opportunities as these re fields where AI is commonly utilized.
- Relying entirely on external support and outsourcing prevents one from developing self-awareness, confidence and resilience to overcome challenges.
- Gaining expertise in an AI-strong domain allows one to effectively lead AI-assisted innovations and make the most of AI capabilities.
- Information alone is insufficient - one must make connections between concepts internally through understanding.
- Insights emerge from linking disparate ideas, which only occurs through internal reflection not external instruction.
- Wisdom develops from accumulating insights over time through dedicated study.
- Specializing in an AI field builds an expertise level others rely on, while AI supports less skilled roles.
- Psychologically, self-learning builds identity, willpower and problem-solving skills.
- Opportunities arise from innovating where AI supports human strengths, not replacing them.
- Mastery requires climbing from foundations, so comprehensively studying AI domains leads to leadership.
- Open Source Software alternatives to popular projects.
Week 49, 2023
- Code is run more than read
- Fairphone
- Data Engineering Design Patterns
- Kernighan and Pike were right: Do one thing, and do it well
- Connection analogy - Applets, Unix Programs, Plugins, Microservices
- The Creative Playground
Week 48, 2023
- https://tests.caniuse.com/avif
- Visual Anagrams: Generating Multi-View Optical Illusions with Diffusion Models
- Hydration Mismatch
- invalid HTML nesting structure
- randomly generated values
- The server and the client are in different time zones
- Travel by Oisin Carroll - A daily game – get between countries in as few guesses as possible
- Preventing Scroll “Bounce” with CSS
:root { overscroll-behavior: none; }
- How to read a paper
- Ten simple rules for structuring papers
- The
hanging-punctuation
property in CSS - DALL·E Party - DALL·E ↔ GPT-4 Vision
- Sqids formerly Hashids is an open-source library that lets you generate YouTube-looking IDs from numbers.
- Shopify live dashboard
- Stripe live dashboard
- Vue - scoped style leak
- Build an OTP input field
Week 47, 2023
- An Interactive Guide to CSS Grid
- Your Website’s URLs Can and Should Be Beautiful
- Realtime planet shader in WebGL
- Charging a lithium battery to 80% only?
stay within 30%-80%
- Former Mozilla exec: Google has sabotaged Firefox for years
- YouTube slows down video load times when using Firefox
- screenshot-to-code converts a screenshot to HTML/Tailwind CSS. It uses GPT-4 Vision to generate the code and DALL-E 3 to generate similar-looking images.
- URL explained - The Fundamentals
Week 46, 2023
- REST, GraphQL or RPC — A Decision Paralysis
- Clicking
<a>
element using Enter/Space key is not working even though it is focused (accessibility) - Reasons to prefer blake3 over sha256
- Locality of Behaviour (LoB)
- HTML First
- Find bilingual baby names
- Design Docs at Google
- Debugging dynamic content in browser dev tools
Week 45, 2023
- Don't Use Fixed CSS height or width on Buttons, Links, or Any Other Text Containers
Despite some web design tools specifying CSS
height
values for elements like buttons, settingheight
ormax-height
can actually put you at risk for failing WCAG 2.2 Success Criterion 1.4.4 Resize Text. - Strikethrough Accessibility
- Internet Artifacts
- The Expressivity Limitations of Object-Oriented Programming
- Monaspace
Orsystem_profiler -json SPFontsDataType | grep \"family | sort | uniq # https://stackoverflow.com/a/67132993/5163033
In Desktop view, Press “⌘ + Space” to start Spotlight, then type in “font book” - Webgl Fluid Simulation
- Don't disable buttons - it breaks accessibility
- You don’t need to work on hard problems
In the real world the most important problems are vague and have many evaluation dimensions. Author found it rewarding to optimize for speed, cost and other pragmatic factors rather than just difficulty.
- Litestream
- Microservices Lessons From Netflix
Week 44, 2023
- Speeding up the JavaScript ecosystem - Tailwind CSS
- Tracking SQLite Database Changes in Git
So it does look like git's delta encoding works with sqlite's blocks.
- Full-Stack Tao: Start With the Domain
- grist-core is the evolution of spreadsheets.
- Window-swap – open a new window somewhere in the world
- Critical rendering path
- Immanuel Kant—What can we know?
- Toxins in chocolate
- SQLite is not without its shortcomings.
- LiteFS - Distributed SQLite
- Turso which uses SQLite under the hood and even has a concept called "embedded replicas" for zero latency reads.
- How to draw beautiful software architecture diagrams (part 1)
Week 43, 2023
- Kysely is a type-safe and autocompletion-friendly typescript SQL query builder.
- Object-Oriented Programming is Bad
- I Hate NestJS
- Radix Vue - Vue port of Radix UI Primitives. An open-source UI component library for building high-quality, accessible design systems and web apps.
- I Won't Use Next.js - https://news.ycombinator.com/item?id=38018217
- Oh-Auth - Abusing OAuth to take over millions of accounts
Not verifying access tokens as required by OAuth specifications allows an attacker to harvest credentials from a malicious site and hijack accounts on other trusted platforms.
- The Three Cs: 🤝 Concatenate, 🗜️ Compress, 🗳️ Cache
- The Pudding is a digital publication that is the best internet rabbit hole.
- Select element: now with horizontal rules
- Was Rust Worth It?
While Rust allows creating reliable software, its steep learning curve, rigid structure, and issues with async code can present roadblocks.
- Openapi Devtools - Effortlessly discover API behaviour with a Chrome extension that automatically generates OpenAPI specifications in real time for any app or website.
- The OSI Deprogrammer
- the actual osi model
- Time to move from Node.js Buffer to Uint8Array
- Software disenchantment
- Base64 Encoding, Explained
- Pushing for a lower dev estimate is like negotiating better weather with a meteorologist discusses how stakeholders often push development teams to provide lower estimates than initially given, without valid reasons for why the effort would decrease.
- Estimates cannot be pushed lower without new information.
- With open communication around constraints and tradeoffs, teams can set appropriate expectations and deliver value along the way.
- Flappy Bird Implemented in Typescript types
- Hexagonal Grids discusses different approaches to representing hexagonal grids in code, including cube, axial, offset, and doubled coordinates.
- Each system has tradeoffs in terms of simplicity for algorithms and storage.
- Axial coordinates are recommended for algorithms as they allow basic math operations.
- Offset coordinates may be better for storage.
Week 42, 2023
- useFetch triggers a request on the client side in nested components (using resolveComponent) #20476
- Build a Better Mobile Input
- Styling External Links with Attribute Selectors
a[class~='link']
,a[href*='css-irl' s]
- The Ultimate Low-Quality Image Placeholder Technique
- Fast-Paced Multiplayer (Part IV): Lag Compensation
- Fast-Paced Multiplayer (Part III): Entity Interpolation
- How to escape CSS selectors in JavaScript - a handy static method in the
CSS
JavaScript namespace to help with this exact problem —CSS.escape()
- Fast-Paced Multiplayer (Part II): Client-Side Prediction and Server Reconciliation
- Write more "useless" software for the joy of computing.
- Reflect - High-performance sync for multiplayer web apps
- Ready Player Two - Transactional Conflict Resolution instead of CRDTs
- PartyKit simplifies developing multiplayer applications
- Microfrontends should be your last resort argues teams should first refactor their code into isolated domains and minimize dependencies before considering microfrontends.
- alternative-front-ends - Overview of alternative open source front-ends for popular internet platforms (e.g. YouTube, Twitter, etc.)
- Organizing multiple Git identities
- Populating the page: how browsers work
- One Game, By One Man, On Six Platforms: The Good, The Bad and The Ugly
Week 41, 2023
- A comprehensive guide to the dangers of Regular Expressions in JavaScript explains how certain regex patterns can cause exponential backtracking on long strings, leading to regular expression denial of service (ReDoS) vulnerabilities. Two real world examples caused major outages at Stack Overflow and CloudFlare due to unintentionally vulnerable regex use.
- JavaScript Hydration Is a Workaround, Not a Solution
JavaScript hydration is a technique used to add interactivity to server-rendered HTML pages by attaching event handlers to DOM elements on the client-side.
However, this process requires recovering the necessary information to rebuild the application state and framework state. The document argues that hydration is an overhead because it duplicates the work already done by the server.A better approach called resumability avoids this overhead by serializing and transferring the necessary information from server to client. This allows lazy execution of event handlers on the client-side instead of eagerly executing all components.
- Angular, Qwik Creator on How JS Frameworks Handle Reactivity
Three approaches: values, signals, and observables.
Angular and React use values and take a coarse-grained approach, re-rendering everything when data changes.
Vue is more fine-grained and will skip re-rendering unchanged components.
Svelte compilers code to be more efficient.
Qwik downloads only the minimal code needed through signals and resumability, making it highly optimized for start-up performance.
Solid uses signals to be the most fine-grained, only executing code initially. - Speeding up the JavaScript ecosystem - The barrel file debacle
The use of barrel files, which only re-export other files, is very common in large JavaScript projects. However, they can significantly slow down development tasks by forcing the rebuilding of the entire module graph for every file.
- AI is an Ideology, Not a Technology argues that artificial intelligence is better understood as an ideology rather than just a technology. It promotes a view of autonomous machine intelligence that could replace humans, but this is a mirage since AI relies heavily on human data and contributions. An alternative view is to focus on how people are central to developing AI systems through providing examples, problem-solving and understanding the technology.
- Thread-per-core
The thread-per-core architecture for Rust async programs has been controversial. While it promises better performance and ease of implementation, it may only achieve one, not both. A share-nothing approach keeps data in separate core caches but is complex to implement transactionally.
Week 40, 2023
- Speeding up the JavaScript ecosystem - Polyfills gone rogue
Many popular npm packages depend on 6-8x more packages than they need to. Most of these are unnecessary polyfills.
- Why HTTP/3 is eating the world
It uses the QUIC protocol, which improves on TCP by more extensively encrypting metadata and enabling faster connection setup. QUIC also enhances performance by eliminating issues like head-of-line blocking and improving network handling. While HTTP/3 was created to work over QUIC, the true innovation was QUIC itself, which updates TCP with security and efficiency improvements. QUIC encryption makes it easier to update features, since middleboxes cannot access metadata. Overall, QUIC and HTTP/3 enhance web performance and security by modernizing core Internet protocols.
- Meta in Myanmar discusses how hate speech and misinformation spread on Facebook contributed to real-world violence against Rohingya Muslims in Myanmar starting in 2012. Activists had warned Facebook for years about this issue but the company was slow to act.
- Encrypted Client Hello
- Draggable objects
- MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve them discusses architecture challenges for massively multiplayer online (MMO) games. Unlike enterprise systems, the source of truth for an MMO's game world is the in-memory state, not the database, as persisting frequent updates would cause bottlenecks. To address this, the article recommends using a data service with the full state cached in memory.
- Everything authenticated by Microsoft is tainted.
- 🚨🚨 That's a lot of YAML 🚨🚨
- Live Near Your Friends - in distance of 5-minute walk
Week 39, 2023
- Google is picking ChatGPT responses from Quora as correct answer
- Unity's oldest community announces dissolution
- Ian's Shoelace Site
Week 38, 2023
-
Get All That Network Activity Under Control with Priority Hints
-
Web Incubator Community Group (WICG) is a community group of the World Wide Web Consortium (W3C) that incubates new web platform features.
-
-
OSS Game Engines are increasing their stars on GitHub due to Unity's missteps
-
How Instagram scaled to 14 million users with only 3 engineers
- Keep things very simple.
- Don’t re-invent the wheel.
- Use proven, solid technologies when possible.
-
My favourite API is a zipfile on the European Central Bank's website - curl, zip, sqlite
Week 37, 2023
- Hacker News Daily Top 10 posts - You can subscribe by watching this repo or via RSS.
- How to build a IP geolocation database from scratch?
- ThumbHash - A very compact representation of an image placeholder
- unpic/placeholder🖼️ is a library for generating low quality image placeholders (LQIP) by extracting the dominant color from image, or by server-side rendering a BlurHash value.
- Some notes on Local-First Development
- cr-sqlite - Convergent, Replicated, SQLite - "It's like Git, for your data."
- preload vs prefetch
- An Internet of PHP
Week 36, 2023
- Building a Native Superapp with Micro Frontends and Federated Capacitor
- Making Sense of React Server Components
- The small web is beautiful
- Turbo 8 is dropping TypeScript - https://github.com/hotwired/turbo/pull/971
- Measuring developer productivity? A response to McKinsey
- Javascript labeled statement
- The Worst Programmer I Know
Tim wasn’t delivering software; Tim was delivering a team that was delivering software.
- How To Edit Your Own Lousy Writing (Vomit Draft)
The article provides advice on how to improve one's writing through effective editing and revising. It states that first drafts are usually poor but that is normal, as editing is the hidden yet vital second half of writing. By learning to read one's own work as a reader would, an author can better see where the writing fails to effectively convey the intended story. It takes many drafts to transform the ideas in one's head into clear writing that evokes the same experience for others. While the process can feel despairing, persisting through multiple revisions is necessary to craft a story that readers can fully understand and engage with. Effective editing focuses first on major structural issues before minor details.
- Explaining The Postgres Meme
Week 35, 2023
- Getting all links from any web site into a spreadsheet using browser developer tools -
console.table($$('a'),['innerHTML','href'])
- Animated Koots
- Absurd Success
The author describes making several improvements to their search engine that significantly increased its performance and scalability. They reworked the URL database to use a single SQLite table instead of large MySQL tables, generating unique IDs during indexing rather than relying on database auto-increment. This reduced RAM usage and allowed indexing to continue while the database was updated. They also changed how the reverse index was constructed, building multiple smaller pre-indexes in memory and then merging them, instead of using a large in-memory lexicon. This avoided writing terabytes of random data to disk and allowed indexing disparate datasets together. Overall these changes halved RAM usage and addressed all known scaling issues, improving the system considerably more than expected.
- 🧠 The Psychology of Design - 106 Cognitive Biases & Principles That Affect Your UX #bookshelf
- VPN Relationship Map - Find out who owns your data and see all the shady relationships in the VPN industry.
- git bisect - during fix vite plugin error
- Programming as Theory Building
- As I get older, I just don't care about new technology
Week 34, 2023
- PSA: Add dir="auto" to your inputs and textareas.
- Server-Side Rendering is a Thiel Truth
- How architecture diagrams enable better conversations
- Understanding the Difference Between : and :: in CSS
:: are used to create additional elements within an element
- Tailwind, and the death of web craftsmanship
While Tailwind may help with initial development speed, it can reduce craftsmanship and make code harder to work with over time.
- testing your animation refresh rate with css crimes??
Week 33, 2023
- Nobody ever paid me for code
- When to use "chore" as type of commit message?
"
grunt task
" means nothing that an external user would see:- implementation (of an existing feature, which doesn't involve a fix),
- configuration (like the
.gitignore
or.gitattributes
), - private internal methods...
Week 32, 2023
- A Blog Post With Every HTML Element
<base>
- meta seo inspector is a Chrome extension useful to inspect in 1 click the meta data usually not visible while browsing
Week 31, 2023
- Google AMP – The Newest of Evasive Phishing Tactic
https://www.google.com/amp/s/${phishing URL}
- Building Software Together ch.21~28
- A non-mathematical introduction to Kalman filters for programmers
- Excuse me, is there a problem?
- Resume and pause animations in CSS
animation-play-state
property. -running
andpaused
- Software Engineering at Google - ch.16~25
- CSP Testing Using Cypress
- Splitting the Web
- So, you want to deploy on the edge?
Week 30, 2023
- Software Engineering at Google - ch.7~15
Code is a liability, not an asset. Code itself doesn’t bring value: it is the functionality that it provides that brings value. That functionality is an asset if it meets a user need: the code that implements this functionality is simply a means to that end.
- Hono + htmx + Cloudflare is a new stack
- Testing on the Toilet: Don't Put Logic in Tests
Production code computes outputs from inputs while tests specify concrete input/output pairs. Complex test logic should be moved to helper functions with their own tests, leaving test bodies simple.
- [Browser] Critical Rendering Path 최적화
- [Core Team RFC] New SFC macro: defineModel
- Nanosecond timestamp collisions are common
Week 29, 2023
- Software Engineering at Google - ch.1~6
- How React 18 Improves Application Performance
- [Browser] 리소스 우선순위 - preload, preconnect, prefetch
prefetch
를 사용하면 리소스를 미리 캐시 해 두기 때문에 성능이 향상될 것이라고 예상. 하지만 vue-cli3에서 제공하는 prefetch 기능을 사용하면 오히려 첫 렌더링 성능이 저하되는 것으로 확인
Week 28, 2023
- JavaScript closest
const link = document.querySelector("li a") const list = a.closest("ul")
Week 27, 2023
- What does the image decoding attribute actually do?
So does this make a difference as an HTML attribute? probably not that much.
- In Defence of DOMContentLoaded
The DOMContentLoaded event fires once all of your deferred JavaScript has finished running.
- The hardest part of building software is not coding, it’s requirements - Why replacing programmers with AI won’t be so easy.
Week 26, 2023
-
MJML - the only framework that makes responsive-email easy
-
Slonik - A battle-tested Node.js PostgreSQL client with strict types, detailed logging and assertions.
-
Stop using Knex.js - Using SQL query builder is an anti-pattern
Knex.js (and other query builders) was designed to be a building block for ORMs; it does not add value when majority of the query is static.
I recommend that you use a query builder for those few queries that need to be generated dynamically, and use raw SQL for everything else. It is not one or the other; the two work together. -
Is ORM still an 'anti pattern'?
- Sequelize is extremely simpler and writing code with it is a joy compared to hibernate.
- A year ago i had to develop a big Java application without orm (cto’s choice): i didn’t remember how tedious, error prone and slow is development without orm!!! Never do it again!
- I think the best approach is to use orm for common crud tasks and add specific sql queries when things get a little bit complicated. andretti1977
-
A Complete Guide to CSS Cascade Layers
@layer reset, default, themes, patterns, layouts, components, utilities;
-
try lets you run a command and inspect its effects before changing your live system.
try
uses Linux's namespaces (viaunshare
) and the overlayfs union filesystem.
Week 25, 2023
- Handles are the better pointers
- Microsoft Clarity - Free Heatmaps & Session Recordings
- Modern CSS in Real Life
margin-right
: Translated to RTL, spacing problem. usemargin-inline-end
(orgap
).img
alt: With that brief information, perhaps someone might be able to, say, recognize the exact pier in the photo if they had been there before or the like.- higher layer will win, regardless of specificity.
@import url(~) layer;
- my @import of Bootstrap is plunked onto a layer. Note: we don’t even have to name it, and we can use this keyword instead of @layer while importing. - my super weak CSS selector in which I’m trying to override header margin does win@layer reset, default, themes, patterns, layouts, components, utilities;
- Software effort estimation is mostly fake research
from HK news
- It's not fake research. It's actually quite an established science in the 24 years I've been doing it.
- Take your first guess, double it, double it again if the stakeholder is a poser, add 20% per developer less experience than you, subtract 10% for the features you're going to essentially copy paste, add 15% for sick leave (browsing HN) and then double it for every question you have that are unresolved and divide it by the room temperature multiplied by the amount of people with mechanical keyboards.
- That gives you roughly the right estimate for any job, until the next sprint.
- My Custom CSS Reset
- In MacOS Mojave, released in 2018, Apple disabled subpixel antialiasing across the operating system.
- Confusingly, MacOS browsers like Chrome and Safari still use subpixel antialiasing by default. We need to explicitly turn it off, by setting
-webkit-font-smoothing
toantialiased
.
Week 24, 2023
- Edge sends images you view online to Microsoft, here is how to disable that
- The Surprising Power of Documentation
- CIA 2010 covert communication websites
- Effortlessly Support Next Gen Image Formats
- use the
picture
element
- use the
Week 23, 2023
- Redditor creates working anime QR codes using Stable Diffusion
- Software Engineering at Google #bookshelf
- How to avoid layout shifts caused by web fonts
- use
font-display: optional
to prevent layout shifts- hide text for up to 100ms, then only use the web font if it is available - never swapping
- If font-display: optional is not possible for your design, use f-mods to reduce the impact of font swaps
- subset fonts and serve as
woff2
- use variable fonts or a limited set of weight variations
- preload critical fonts
- host your own fonts on your main domain
- use
- Aimless.js - The missing JavaScript randomness library.
- The Rise of the Serverless Monoliths
- What the heck is the edge anyway?
- libSQL is a fork of SQLite that is both Open Source, and Open Contributions.
display: contents
considered harmful
Week 22, 2023
- Webp2jpg-online - image conversion and image stitching, pure front-end implementation, fast speed, privacy protection, and offline use,20 languages supported. link
- Tidy First? Kent Beck on Refactoring
- Software design is an exercise in human relationships between waiters who want new features and changers who want to improve the code structure.
- Change the structure first. Then change the behavior and it'll be so much easier.
- Reading Code - Chakra UI
- Mastering the Art of Efficient JavaScript DOM Manipulation
- Use document fragments
- Use event delegation -
event.target.matches
- ls-lint - An extremely fast directory and filename linter - Bring some structure to your project filesystem
Week 21, 2023
-
SST makes it easy to build modern full-stack applications on AWS.
-
Understanding React Concurrency
The basic premise of React concurrency is to rework the rendering process such that while rendering the next view, the current view is kept responsive.
-
Most of the problems with
useEffect
are rooted in bad software design, not the hook’s API. -
11 HTML best practices for login & sign-up forms
- Don’t Use The Placeholder Attribute
- Can’t be automatically translated;
- Is oftentimes used in place of a label, locking out assistive technology;
- Can hide important information when content is entered;
- Can be too light-colored to be legible;
- Has limited styling options;
- May look like pre-filled information and be skipped over.
- Don’t Use The Placeholder Attribute
-
A primer on functional architecture
Just because a business workflow involves an entity, such as an “order,” doesn’t mean it has anything in common with other workflows that use that entity. For example, the “pay for an order” workflow and the “delete an order” workflow both involve orders but have completely different business logic. There’s no need for them both to depend on an arbitrary “order” service that lumps a disparate set of functions together.
-
Essentially the ORM can handle about 80-90% of the mapping problems, but that last chunk always needs careful work by somebody who really understands how a relational database works.
... A framework that allows me to avoid 80% of that is worthwhile even if it is only 80%. -
Creating Seamless User Experiences: A Comprehensive Guide to Micro Frontend Architectural Patterns
-
The Guardian Optimizes Mobile Push-Notification Delivery Architecture
Week 20, 2023
- DevTools Tips - A collection of useful cross-browser DevTools tips
- Closing Modals By Pressing the Back Button in Vue.js
- Announcing Vue 3.3
Week 19, 2023
- I'm never investing in Google's smart home ecosystem again
- file-type is detected by checking the magic number of the buffer.
- HTMX is the Future
- Prime Video Switched from Serverless to EC2 and ECS to Save Costs
- On Starting A Side-Project: Hotwire vs. Angular
- How to cache node_modules in GitHub Actions with Yarn
- 24 Powerful HTML Attributes Every Senior Web Engineer Should Master!
- The Interactive Guide to Rendering in React
- Favour TypeScript Types Over Interfaces
Week 18, 2023
- changelogen - 💅 Beautiful Changelogs using Conventional Commits
- TypeScript Advanced Types for Next.js: Examples and Best Practices In 2023
- Record Type in TypeScript
- There’s more than one way to write an IP address
Week 17, 2023
- What is Source Command in Linux and How Does it Work?
- Arrow Functions vs Regular Functions in JavaScript – What's the Difference?
- Pico CSS - Minimal CSS Framework for semantic HTML
- Quickstart for GitHub Packages
- A Completely Non-Technical Explanation of AI and Deep Learning
- THE NATURE OF CODE #bookshelf
- How does JWT work? is HS256 the best option? - look EDDSA
- A 5 years+ tech lead said they shard a database to scale but then he failed to answer this question
- Next.js 13 is not ready for production
Week 16, 2023
- Tachyon is a byte sized script that makes your website feel blazingly fast. It does this by prerendering pages before a user navigates to them, making page transitions virtually instant.
- 90% of My Skills Are Now Worth $0 ...but the other 10% are worth 1000x
- The relative font weight axis — how variable fonts ease font weight transitions
- Modern HTML email (tables no longer required)
- Can I Email
- Introducing the Space Git Flow - Branching Strategies about Git flow, GitHub flow, Trunk-based development, Space Git Flow
- Korean as a Concatenative, Stack-Oriented Language
- Midjourney AI Guide
- https://docs.midjourney.com/docs/permutations
Week 15, 2023
-
You Don't Need Another Library to Compose Micro Frontends at Run Time
-
HTMHell - A collection of bad practices in HTML, copied from real websites.
-
The 42 Best Pens for 2023: Gel, Ballpoint, Rollerball, and Fountain Pens
-
Croner - Cron for JavaScript and TypeScript
-
How does database sharding work?
why are you not using a database that does sharding for you?
-
Gource is a visualization tool for source control repositories.
-
What happens when you leak AWS credentials and how AWS minimizes the damage
Week 14, 2023
- Improving Web Accessibility with Semantic HTML and Testing Techniques and Tools
- CSS Masking - Ahmad Shadeed
- An On-Ramp to Flow
Before stepping away, leave the code in a state where it is Obviously Broken, but Easy to Fix.
Applying this technique means thinking about how to exit flow in a way that makes it easy to re-enter. - Two-way data binding and reactivity with 15 lines of vanilla JavaScript
- Proxy, Event delegate
- New React docs pretend SPAs don't exist anymore
The strongly recommended way to start a new React project is to use a framework such as Next.js, while the traditional route of using bundlers like Vite or CRA is fairly strongly discouraged.
- AI won’t steal your job, people leveraging AI will
- Saying Goodbye to GitHub
- bruce511's another opinion
- He who submits a resume has already lost
- Twitter's Recommendation Algorithm
- One In Two New Npm Packages Is SEO Spam Right Now
- CSS hyphens
<wbr>
,­
- Two ways to safely break a long word in HTML
Week 13, 2023
- Why You Should Use Bash Over Python
- SVGOMG is SVGO's Missing GUI, aiming to expose the majority, if not all the configuration options of SVGO.
- Why Engineers Need To Write
Writing for a child forces me to keep the words and concepts very, very simple, and to write in a style that builds up usage of the program from first principles. Writing for the grumpy old-timer is a practice in minimizing questions from them, forcing me to do a sort of final pass on the overall design of what I'm writing about, to defend design choices, and to add future improvements to the backlog. Drafting the documentation for semi-finished features that are still in progress has sometimes led me to change the design in order to make writing the docs targeting these two people simpler.
— albrewer
Week 12, 2023
-
Software engineering exists as a discipline because you cannot EVER under any circumstances TRUST CODE.
- You get the LLM to draft some code for you that’s 80% complete/correct.
- You tweak the last 20% by hand.
Someone is hesitant about 5 times as productive because we only need to "check the code is good" for two main reasons.
-
Why Tacit Knowledge is More Important Than Deliberate Practice
-
Steampipe is the universal interface to APIs. Use SQL to query cloud infrastructure, SaaS, code, logs, and more.
-
libgsqlite - A SQLite extension which loads a Google Sheet as a virtual table.
-
Transformers.js - Run 🤗 Transformers in your browser! We currently support BERT, ALBERT, DistilBERT, T5, T5v1.1, FLAN-T5, GPT2, BART, CodeGen, Whisper, CLIP, Vision Transformer, and VisionEncoderDecoder models, for a variety of tasks including: masked language modelling, text classification, text-to-text generation, translation, summarization, question answering, text generation, automatic speech recognition, image classification, zero-shot image classification, and image-to-text.
-
Structured text tools - The following is a list of text-based file formats and command line tools for manipulating each.
Week 11, 2023
- Master the Art of Caching for System Design Interviews: A Complete Guide
- Highlights from Git 2.40
- Basics of CI/CD Pipeline
- Version control
- Build
- Unit test
- Deploy
- Auto test
- Deploy to production
- Measure & validate
- Managing State In Vue With Pinia ORM
Week 10, 2023
- The Best Engineering Blogs
- Everything You Need to Know About the Gap After the List Marker
- Study finds mushrooms magnify memory by boosting nerve growth
I think it should be everyone's primary focus to sleep well, drink water, get outside, get active, and eat generally decently. I hate to say it, but if you're not eating a good amount of vegetables and fruit, decent protein, sleep, etc, no amount of XYZ will catch up to that detriment.
— CE02
- rallly - Self-hostable doodle poll alternative. Find the best date for a meeting with your colleagues or friends without the back and forth emails.
Week 9, 2023
- All you may need is HTML
- devalue - Gets the job done when JSON.stringify can't
- vite-plugin-federation - Module Federation for vite & rollup
- js-beautify - partly deobfuscate scripts
- Some More On-Scroll Typography Animations
- Why I’m sticking with Vue in 2023
- Script setup + composition API produce clean code
- Performance is good
- Best tooling I have used
- Resizing with CSS
- 48 Accessibility Bookmarklets You Can Use For A11Y Testing
- fontaine - Automatic font fallback based on font metrics
- Firecracker internals: a deep dive inside the technology powering AWS Lambda
- Improve Your VSCode Workflow to the Max
- jose - "JSON Web Almost Everything" - JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes.
- Easy implemented dark mode
- What to Expect from Vue in 2023 and How it Differs from React
- The Unreasonable Effectiveness of Conditional Probabilities
- Debugging Node.js, The Right Way
node server.js --inspect-brk
Week 8, 2023
- test && commit || revert
- Limbo: Scaling Software Collaboration
Sort commits into “couldn’t possibly cause problems” (you’ll be mostly right) and “might cause problems”. Treat them differently. Rearrange your workflow so you have mostly “couldn’t possibly cause problems” commits.
- My class required AI. Here's what I've learned so far.
a = 0-x
is about 3-10x faster thana = -x
- How to Favicon in 2023: Six files that fit most needs
- Important SEO-Related HTML Tags, And How To Optimize Them
- https://pointerpointer.com/
- How to Inspect Interactions in the Browser
- I love building a startup in Rust. I wouldn't pick it again.
If you're thinking about building something in Rust, a good question to ask is, "what would I use if Rust didn't exist?" If your answer is something like Go or Node.js, then Rust is probably not the right choice. If your answer is C or C++ or something similar, then Rust is very likely the right choice. zeroxfe
- Writing Javascript without a build system
- For me, a complicated Javascript build system just doesn’t seem worth it for small 500-line projects
- if I want a build system, use esbuild
- CSS Named Colors: Groups, Palettes, Facts, & Fun
Week 7, 2023
- Electric Clojure – a signals DSL for fullstack web UI, with compiler-managed network sync
- Just 4 pages a day. It really adds up.
- Comparing the Top Eight Managed Kubernetes Providers
- Best overall: Azure
- Best for startups: Linode
- Best for cost: OVHCloud
- SQLite the only database you will ever need in most cases
- Squares in Squares
- What's up with monomorphism?
- Rethinking the Modern Web
- Use Maps More and Objects Less
- React Server Components vs. Server-Side Rendering
- Type vs Interface in TypeScript
- Unpacking API Management policies [Part 2]: 5 ways to handle REST API authentication
- useSignal() is the future of web frameworks and is a better abstraction than useState(), which is showing its age.
- Using Notion as a Headless CMS with Nuxt
- Speeding up the JavaScript ecosystem - eslint
- Why Create React App exists
- Discover the Magic of Portals: A Beginner’s Guide to React’s Most Powerful Tool
- Portals allow you to render components outside of their parent component’s tree.
- When should you use portals?
- Modals and dialogs
- Tooltips and popovers
- Overlaying content
- Environment Variables in JavaScript: process.env
- The Guide To Responsive Design In 2023 and Beyond
- A HISTORICAL REFERENCE OF REACT CRITICISM
- OrgChart - It's a simple and direct organization chart plugin. Anytime you want a tree-like chart, you can turn to OrgChart.
- Optimal Images in HTML
- I made ChatGPT and Bing AI have a conversation (and they are friends now)
- Five Tips For a Healthier Postgres Database in the New Year
- How to Search Files Effectively in the Linux Terminal
- Ask HN: What Happened to Elm?
Week 6, 2023
- Image Compression with Singular Value Decomposition
- A Better Way to Work With Number and Date Inputs in JavaScript
- valueAsNumber, valueAsDate
- Three attributes for better web forms
- inputmode, enterkeyhint, and autocomplete.
- Understand the Lexical Scoping in JavaScript
- JavaScript Require – How to Use the require() Function in JS
- When You Should Prefer Map Over Object In JavaScript
- The new Wikipedia appearance that took the whole village
- The Intermediate Plateau: What Causes It? How Can We Move Beyond It?
- codeium - Free AI-powered code completion for everyone, everywhere
- Windows 11: a spyware machine out of users' control?
- sqlc - A SQL Compiler
- Use GPT-3 incorrectly: reduce costs 40x and increase speed by 5x
- To reduce costs and increase speed, they developed a technique to generate a moderately sized corpus of completions made by a larger model, and fine-tune a smaller model to do the same task. This can reduce costs by 40x and increase speed by 5x. This is an interesting approach to using GPT-3 to reduce costs and increase speed, and could be useful for other applications.
- Knowledge distillation
- Increment Selection - vs code extension
- Screw motivation, what you need is discipline.
- Visual design rules you can safely follow every time
- Optimal program design 2.0
<vue-clamp>
- Clamping multiline text with ease.- Comparing Manual and Free Automated WCAG Reviews
- Introduction to Linux Server Administration!
- deadfile - Simple util to find deadcode and unused files in any JavaScript project (ES5, ES6, React, Vue, ...).
Week 5, 2023
- History of Lisp Parentheses
- JavaScript Closure: A Simple Explanation
- 10 Web Development Trends in 2023
- 5 Must-Know Differences Between ref() and reactive() in Vue
- International domain names: where does https://meßagefactory.ca lead you? - The result depends on your browser.
- Two ways to safely break a long word in HTML
<wbr>
­
- Demystifying Fresh — Build Your own Islands of Interactivity
- Netlify lost my trust and replies
- Virtual DOM is pure overhead
- When Discord is open in the background, NVIDIA card will not reach full speed
- Trigger.dev is an open-source platform that makes it easy for developers to create event-driven background tasks directly in their code.
- Weeklong improved colour contrasts sensitivity after single 670 nm exposures associated with enhanced mitochondrial function
- MySQL vs PostgreSQL in 2023.
- Understanding Authentication In Websites: A Banking Analogy
- Carbonyl is a Chromium based browser built to run in a terminal. Read the blog post.
- Ask HN: What would be your stack if you are building an MVP today?
- What we look for in a resume
- LastPass breach gets worse
- IPinside: Korea’s mandatory spyware
- Bitwarden design flaw: Server side iterations
- The Ultimate Guide To Software Architecture Documentation
- Why React isn't dying
Week 4, 2023
- Transducers: Efficient Data Processing Pipelines in JavaScript
- The Page With No Code
- Techniques to improve reliability
Applying this simple trick to the MultiArith math dataset, the authors found
Let's think step by step
quadrupled the accuracy, from 18% to 79%! - Interview Questions to ask as a candidate
- Topcat's System Design Template
- Unable to make a single bit of progress, my goto strategy is similar to what writers call a vomit draft.
- Git-Sim: Visually Simulate Git Operations In Your Own Repos
- Function Composition in Large React Applications: Best Practices and Real-World Examples
Week 3, 2023
- 5 Mistakes to Avoid When Self Hosting a Website from Home
- Nerd Fonts is a project that patches developer targeted fonts with a high number of glyphs (icons). Specifically to add a high number of extra glyphs from popular 'iconic fonts' such as Font Awesome, Devicons, Octicons, and others.
- ai-collection - A List of Awesome Generative AI Applications
- 1000+ Free Developer Certifications
- Design Doping: My Obsession with AI as the Ultimate Brainstorming Partner
- Every Software Developer should write a blog
- API Management in Nuxt 3 with TypeScript
- 10 Advanced TypeScript Tips for Development
- Evergreen notes
- How to draw ideas
- Make me think!
- sysend - Web application synchronization between different tabs
- Static HTML comments
Week 2, 2023
- How to Destructure Props in Vue (Composition API)
- Type-safe React Query
- C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures.
- VS Code Shortcuts To Code Like You’re Playing a Piano
- recommended routine - bodyweightfitness
- MuscleWiki - Find exercises that work specific muscles
- OWASP Cheat Sheet Series #bookmark
- https://owasp.org/sitemap/ - Key Projects
- 2022 JavaScript Rising Stars
- 🤖 just is a handy way to save and run project-specific commands.
- Introduction to Statistical Lebarning
- Do-nothing scripting: the key to gradual automation
- Extreme questions to trigger new, better ideas
- 10x prices, No customers, No tech support, ...
- https://github.com/search?o=desc&q=stars%3A%3E100000&s=stars&type=Repositories
- https://github.com/sindresorhus/awesome - 😎 Awesome lists about all kinds of interesting topics
- roadmap.sh - Community driven roadmaps, articles and resources for developers
- fish - the friendly interactive shell
- Testing Without Mocks: A Pattern Language #bookmark
Week 1, 2023
- Component Party - Web component JS frameworks overview by their syntax and features: Svelte, React, Vue 2, Vue 3, Angular, SolidJS, Lit, Ember, Alpine, Qwik
- I like Alpine mostly. But what about component.
- React Wrap Balancer is a simple React Component that makes your titles more readable in different viewport sizes.
- Lesser-Known And Underused CSS Features In 2022
- Reduce WSL2 Disk Usage
- DuckDB is an in-process SQL OLAP Database Management System — What’s the Hype About?
- Processing and storing tabular datasets, e.g. from CSV or Parquet files
- Interactive data analysis, e.g. Joining & aggregate multiple large tables
- Concurrent large changes, to multiple large tables, e.g. appending rows, adding/removing/updating columns
- Large result set transfer to client
- Flying away from AWS
- Deploying CSS Logical Properties On Web Apps
margin-inline: auto; margin-block: 0; inset: 0; inset-inline: 10%;
- By default, the aws sync command does not delete files.
- Web Hackers vs. The Auto Industry: Critical Vulnerabilities in Ferrari, BMW, Rolls Royce, Porsche, and More
- HN: Modules, not microservices
- I just want to point out that for the second problem (scalability of CPU/memory/io), microservices almost always make things worse.
- I was working at Amazon when they started transitioning from monolith to microservices, and the big win there was locality of data and caching.
- Microservices are less efficient, but are still more scalable.
- I am working on a project that uses a microservice architecture to make the individual components scalable and separate the concerns. However one of the unexpected consequences is that we are now doing a lot of network calls between these microservices, and this has actually become the main speed bottleneck for our program, especially since some of these services are not even in the same data center. We are now attempting to solve this with caches and doing batch requests, but all of this created additional overhead that could have all been avoided by not using microservices.
- HyperUI is a large collection of free Tailwind CSS components for marketing, ecommerce and application UI 🐳
- Free UI faces for designers, avatars, dummy faces, AI generated people faces | Lorem Faces
- HTTP Status Dogs - Hypertext Transfer Protocol Response status codes. And dogs.
- Optimizing images for mobile browsers with a UX mindset
- Formats for the win
- Load responsively - With the HTML
<picture> element
, we can load the image in the right size and format, no matter the device. It ensures the best image-loading experience every time, taking into account a device’s DPR automatically.
- Books for Software Engineers in 2023
- Mafs is a set of opinionated React components for creating math visualizations.
- Ask HN: Why did Frontend development explode in complexity?
- Functional Programming - How and Why
- What is my viewport - A simple online tool for quickly finding the dimensions of your current device's viewport!
- Top 5 Web APIs for performance-based analysis (and how to use them)
- Making the Web Faster with Service Workers and Performance Research
- Cache dynamic website resources like HTML and APIs which can be plugged into websites via Service Workers
- automatically dealing with personalization in HTML
- keeping caches up-to-date by crowdsourcing cache checks
- caching dynamic resources in the complete web cache hierarchy including browser cache through Bloom filter-based cache coherence algorithms
- Cache dynamic website resources like HTML and APIs which can be plugged into websites via Service Workers
- 4 minutes run hard enough to push heart rate to 90%, 3 minutes recover, repeat 4 times
- HTTP/3 Prioritization Demystified
- 2022 Roundup of Web Research
- 7 Unnecessarvy VSCode Extensions You Should Uninstall Now
- Top 7 tips/features in Vue 3 3. Reactive CSS
- The global
structuredClone()
method creates a deep clone of a given value using the structured clone algorithm. - 12 CSS Tricks You Might Not Know
Backlinks