• Hungry Minds
  • Posts
  • ๐Ÿ”๐Ÿง  Redis + WebSockets: Canva's Real-Time Mouse Pointer Sharing Architecture

๐Ÿ”๐Ÿง  Redis + WebSockets: Canva's Real-Time Mouse Pointer Sharing Architecture

PLUS: WebSockets 101 ๐Ÿ”ฅ, Scaling 1M Checkboxes ๐Ÿ“š, The Tech Promotion Algorithm โšก

In partnership with

Happy Monday! โ˜€๏ธ

Welcome to the 1526 new hungry minds who have joined us since last Monday!
If you arenโ€™t subscribed yet, join smart, curious, and hungry folks by subscribing here.

This week I was out in Dublin for a few days off, returning recharged for the last months of 2024! ๐Ÿ‡ฎ๐Ÿ‡ช

๐Ÿ” THIS WEEKโ€™S MENU ๐Ÿฅ—

๐Ÿ“š Software Engineering Articles

๐Ÿ—ž๏ธ Tech and AI Trends

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Coding Tip

Reading time: 5 minutes

This issue of Hungry Minds is brought to you by:

The Daily Newsletter for Intellectually Curious Readers

  • We scour 100+ sources daily

  • Read by CEOs, scientists, business owners and more

  • 3.5 million subscribers

Food for Thought
A mindset, an example, and an action item to start the week
โ

"Do not wait to strike till the iron is hot, but make it hot by striking."

William Butler Yeats

Mindset: Seize the moment, don't wait for the perfect conditions - create your own opportunities.

Example: Apple disrupted the music industry by launching the iPod and iTunes before anyone else saw the potential.

Action: Identify one task you've been putting off and start it today, even if it's just for 15 minutes.

The Rabbit Hole
Deep dives, trends, and resources curated to stay ahead

๐Ÿ’พ SIDE DISHES ๐Ÿ’พ

ARTICLE (CSS party time)
CSS finally adds vertical centering

ARTICLE (abstraction distraction)
The Wrong Abstraction โ€” Sandi Metz

GITHUB REPO (course-ology)
Anthropic's educational courses

ARTICLE (postgres search wizardry)
Postgres as a search engine

ARTICLE (time travel in JS)
JS Dates Are About to Be Fixed

ARTICLE (CORS conundrum)
CORS is Stupid

The Weekly Digest
Software, AI, and startup news worth your time

Brief: Microsoft debuts its Phi 3.5 AI models, showcasing advancements that outpace offerings from Google and OpenAI, setting a new benchmark in the AI landscape.

Brief: Claude.ai expands access to Artifacts for all users, enhancing collaboration with tools for creating high-quality work products like diagrams, prototypes, and dashboards.

Brief: Pavel Durov faces serious charges in France, including terrorism and money laundering, as authorities claim his platform enables organized crime and lacks moderation.

Brief: Apple is set to launch a revamped Siri with Apple Intelligence in iOS 18.1, while simultaneously developing a distinct AI personality for future robotics devices aimed at enhancing user interaction.

Brief: OpenAI is negotiating to raise $1 billion from Thrive Capital, pushing its valuation to over $100 billion, despite facing significant losses this year.

Brief: OpenAI has successfully raised funds to enhance ChatGPT's integration with Apple, aiming to boost user experience and further innovate in the AI space.

The Quick Byte
One coding tip because youโ€™re technical after all

This weekโ€™s coding challenge:

This weekโ€™s tip:

Dependency injection in React functional components:

Wen?

  • Testability: Dependency Injection (DI) in React allows you to easily mock or replace service dependencies, making your components more testable. This is particularly useful when writing unit tests for your components, as you can isolate their behavior from the underlying service implementations.

  • Modularity: By separating your service logic from your components, you can improve the modularity and reusability of your code. This makes it easier to swap out or update service implementations without affecting the components that use them.

  • Flexibility: DI gives you the flexibility to use different service implementations based on the context or environment (e.g., a mock service for testing, a production service for the live application).

Why?

  • Improved Testability: Mocking service dependencies during tests allows you to focus on testing the component's behavior in isolation, without the need to set up complex data or network mocks.

  • Easier Maintenance: Separating service logic from components makes your codebase more maintainable. Changes to service implementations won't affect the components that use them, and vice versa.

  • Better Scalability: As your application grows, the use of DI can help manage complexity by allowing you to easily add, remove, or replace service dependencies without affecting the overall application structure.

Burp-A-Laugh
The most important meal of your day

Thatโ€™s it for today! โ˜€๏ธ

Enjoyed this issue? Send it to your friends here to sign up, or share it on Twitter!

If you want to submit a section to the newsletter or tell us what you think about todayโ€™s issue, reply to this email or DM me on Twitter! ๐Ÿฆ

Thanks for spending part of your Monday morning with Hungry Minds.
See you in a week โ€” Alex.

Icons by Icons8.

*I may earn a commission if you get a subscription through the links marked with โ€œaff.โ€ (at no extra cost to you).