ANNOUNCING THE WEB PLATFORM DASHBOARD
Google's Web Platform Dashboard is a tool for visualizing web platform features and browser support.
Full-text search across article titles and summaries. Refine with sector, year, content type, and reading-time filters.
Google's Web Platform Dashboard is a tool for visualizing web platform features and browser support.
This author tested ChatGPT-4o's ability to solve a math problem using five different approaches. They experimented with text-only prompts, multi-modal prompts with images, and prompts with chain-of-thought prompting. The most successful approach was the text-only prompt with chain-of-thought prompting, which resulted in consistently correct answers. The multi-modal prompts led to incorrect answers because the AI misinterpreted the image details.
AI-centric communication is expected to fuel a new wave of tech companies and products, similar to how social media platforms arose from earlier internet technologies. While most communication today is done with people through technology, eventually people could primarily just communicate with technology (AI) itself. This will impact human behavior and interaction, but in what direction is unclear.
The State of HTML 2023 survey reveals strong demand from developers for more interactive and customizable HTML elements with styling and extensibility options.
A complete guide with visualizations to D3.js.
The new Gemini API context caching feature reduces the cost of repetitive requests by caching and reusing input tokens.
ChatGPT is introducing better data analysis features for its premium users, which include directly uploading files from Google Drive/OneDrive, interacting with charts and tables, and customizing charts for presentations.
This article explains how to build a simplified version of React with 400 lines of code. The simplified React utilizes Fiber architecture and concurrency mode to avoid blocking the main thread during rendering. It is able to execute tasks during browser idle time. It uses a linked list structure to connect work units and triggers updates through a custom useState implementation.
Facebook used Memcached, a key-value store, to efficiently handle billions of requests per second. It achieved this by scaling Memcached at three levels: cluster, region, and worldwide. It used parallel requests and batching, optimized client-server communication, and managed congestion effectively to reduce latency. “Memcache pools” were used to reduce load on their databases.
This developer discovered a significant performance issue in a database query used for indexing posts in their application Mattermost. The query was initially slow due to too much filtering, but was sped up by using PostgreSQL's row constructor comparisons. To help find this speed boost, the developer used the BUFFERS option in EXPLAIN statements for detailed insights and prioritized Index Cond over Filter for efficient queries.
Microservices are popular and great for scalability and team organization, but can bring problems to smaller organizations. Too many services can be hard to maintain, create excessive interdependencies, and make downsizing difficult in tough economic times.
Traditional code reviews, which focus on manually finding errors, have become a bottleneck for engineering teams. With advancements in automated testing and static code analyzers, code reviews can now shift their focus from error-finding to knowledge sharing and long-term codebase health.
This developer added a quicksort animation feature to a game to visually sort items while handling potential changes in the list being sorted. Instead of optimizing the quicksort algorithm to resume from its last state, the developer chose a simpler, inefficient solution (on purpose): the sorting illusion is created by repeatedly running the algorithm from the start until a change occurs.
Server-sent events is a protocol that allows web servers to push data to clients without the need for alternative mechanisms such as pinging, long-polling, or WebSockets. Better SSE is a dependency-less server-sent events implementation for Node, written in TypeScript.
Glance is a self-hosted dashboard that puts all your feeds in one place, such as RSS feeds, subreddit posts, weather, bookmarks, stocks, YouTube videos, GitHub releases, and more.
Quary is an open-source business intelligence tool for engineers. Engineers can use it to connect to their database, write SQL queries, create charts/dashboards/reports, and more.
You can add a README to your profile repository by naming it the same as your GitHub username. GitHub Actions can be used to integrate dynamic content such as real-time statistics and latest blog posts using tools like `github-readme-stats` and `metrics`.
JavaScript frameworks have evolved and converged towards a common set of features, such as immutability for developer experience and code stability, single-directional data flow for simplified state management, signals for granular reactivity, and server-side rendering (SSR) for improved SEO and performance.
The Threads Web team used Meta's shared infrastructure to quickly build Threads for Web in under three months.
Branded types in TypeScript allow developers to create new types by adding a unique tag to an existing type.
Adobe Photoshop was initially a side project, then was licensed to Adobe and became a huge commercial success.
All major browser engines now support the CSS stepped value math functions: round(), mod(), and rem().
This author successfully replaced OpenAI's API with an open-source alternative to reduce the cost of running large-scale AI applications. They tried using Ollama on a local machine to generate text summaries, but limitations with concurrent processing led to them using vLLM (a fast inference runner). To handle large volumes of requests, the author used a Kubernetes cluster to deploy and load balance vLLM.
Caches need to be maintained and updated. The process of cache invalidation can be challenging due to factors like thundering herds (a sudden surge of requests) and cache inconsistency (different parts of the data updating at different times). To handle cache invalidation properly, it's important to prioritize using a robust invalidation protocol and manage data dependencies.
The Asynchronous State Handler pattern improves UX in web apps by decoupling data fetching from the UI. It wraps asynchronous queries with meta-queries that track the status (loading, success, error) of the data fetching process. This allows the UI to react dynamically to these states, displaying loading indicators or error messages when needed. The pattern can be implemented in React using a custom hook.
Over a 12-year career at Google, Addy Osmani learned to put users first, collaborate well by actively sharing knowledge, and embrace lifelong learning. He encourages readers to just get started and iterate rather than trying to strive for perfection.
Communicating in clear deltas (i.e., quantifying before and after states) is a great way to get your point across effectively. For example, in performance reviews, rather than vague statements like "improved performance," specify the percentage reduction in page load time and its impact on key metrics like user engagement. Convincing others to adopt your ideas is easier when you quantify the current problem and the expected improvement from your proposed solution.
Google introduced upgraded versions of its Gemini AI model, including a public preview of Gemini 1.5 Pro with a 2 million token context window at I/O 2024. For Android developers, the company highlighted Gemini Nano, an on-device AI model for faster local processing. Flutter and Dart also received updates, with Flutter now supporting compilation to WebAssembly and Dart introducing the initial stages of macros.
Gemini Flash is a new lightweight model from Google that features multimodal reasoning and a long context window of up to one million tokens.
Socket Security protects applications from hidden malware in open source code. It goes beyond traditional scanners to find new threats and integrates with GitHub for developer fixes.
Google is integrating Gemini into various products, enhancing Search with AI Overviews and introducing Ask Photos in Google Photos for intelligent image searches. It has showcased AI agents that can perform complex tasks like shopping returns or helping users relocate.
Most generative AI projects fail to reach production or deliver significant revenue. Successful GenAI projects prioritize understanding business problems before selecting tools, recognize GenAI is part of a larger tech stack, keep humans involved to guide AI, and rely on trustworthy, traceable data for the best results.
Google revealed several new tools and features for web developers at I/O 2024 specifically related to Google Gemini, Web Assembly, and WebGPU, along with enhancements to Chrome DevTools, Angular, and Google Maps.
Veo is a new video generation AI model from Google Deepmind that can generate 1080p resolution videos that can go beyond a minute long.
URLhaus is a database of malicious URLs that are being used for malware distribution.
Needle in a Needlestack (NIAN) is a new benchmark that was created to test how well LLMs process information in their context window - GPT-4o has significantly outperformed other models in this test.
React Query is both a data fetcher and an asynchronous state manager designed for handling server state. Unlike client state (managed with useState or useReducer), server state is often asynchronous, persistent, and can be modified by multiple users. React Query abstracts common complexities like cache management, invalidation, and refetching, allowing developers to focus on building their applications without getting bogged down in the complex, nitty-gritty details of data fetching.
Patching globals, or modifying existing APIs in a language, can lead to maintenance issues, unpredictable behavior due to conflicting implementations, vendor lock-in, and even slow down the progress of the language itself. These issues arise because patched globals are essentially modifications to code that you don't own, making them difficult to manage and predict. There are often better, more explicit solutions to API design challenges that avoid these issues.
This author is part of a team that built microservices the “wrong way” where everything depends on everything else and thus it's too difficult to make architectural changes. Commenters give their recommendations, such as collapsing the system to an actual monolith if possible and turning remote calls to local calls.
Founders share how they manage code for their free and paid SaaS products. Many products use a plug-in architecture, while others have separate codebases for the open-source product versus the paid product.
JavaScript has changed a lot since 2015, especially thanks to improvements in the ECMAScript specification. Early JavaScript was difficult to work with due to issues like function-scoped variables and callback hell. Modern JavaScript has introduced features like block-scoped variables, arrow functions, promises, and async/await, which makes development much better. Tooling has also gotten better.
Sponsored
If you're building on Supabase, the new Sentry integration [9] is a powerful way to find slow queries and errors in your database. Join Thorsten from Supabase and Lazar from Sentry for a live developer workshop [9], where they'll demo the integration on a Next.js project. Sign up for the session this Thursday! [9]
OpenAI has released GPT-4o, an AI model that can reason across audio, vision, and text in real time. Developers can access the GPT-4o API as a text and vision model. It's 2x faster, half the price, and has 5x higher rate limits compared to GPT-4 Turbo.
Graphql-request is a minimal GraphQL client that supports both Node and browsers for scripts and simple apps. It has a Promise-based API and first-class TypeScript support.
Pintora is an extensible JavaScript text-to-diagrams library that works in both browsers and Node.js.
Haskell is a functional programming language with elegant syntax but a steep learning curve. Although not widely adopted for practical programming, Haskell has influenced modern programming languages, with many incorporating its concepts to improve bug prevention, code correctness, and parallel processing capabilities.
Binary Search is a common search algorithm with logarithmic time complexity, often used on sorted data. Prolly Search is a faster alternative that leverages the uniform distribution of data to make more intelligent guesses than simply dividing the set in half with each iteration. However, Prolly Search is not always applicable because it relies on the assumption of uniform data distribution, and it can regress to linear time complexity in certain cases.
These authors, from Stanford University, focused on optimizing AI's compute usage and developed ThunderKittens, a DSL embedded in CUDA, to write efficient kernels. ThunderKittens simplifies the process of utilizing hardware features like the Tensor Memory Accelerator (TMA) and warp group matrix multiply accumulate (WGMMA) instructions, leading to significant performance improvements in Flash Attention and Based linear attention kernels.
Amazon S3 is changing its billing policy so that bucket owners will no longer be charged for unauthorized requests that return a 403 (Access Denied) error and other codes.
Apple and Google have partnered to create a specification for Bluetooth tracking devices that will send alerts to both iOS and Android users if an unknown tracker is detected moving with them.