There are various confusing Git terms like "detached HEAD state," "ours" and "theirs" in merging or rebasing, and "fast-forward." This article provides explanations for these terms. "HEAD" is the current branch, "detached HEAD state" occurs when HEAD points to a commit ID instead of a branch, and "fast-forward" refers to an easy branch update. The article also touches on other terms like "reference," "symbolic reference," "tree-ish," "index," "staged," and "cached" and the differences between "reset," "revert," and "restore.”
Type safety is valuable primarily because it moves errors from runtime to compile time, reducing the occurrence of runtime errors. However, type safety is not the only way to achieve this. Programmers should also consider other bug reduction techniques, including static analysis and automated testing, rather than being ideologically driven towards a single approach.
Docusaurus is a popular React-powered documentation site tool by Meta. It’s used by companies like Supabase, Redux, and Temporal for their documentation sites. Version 3 focuses on modernizing the tool with upgrades to MDX v3, React 18, Mermaid v10, and more.
Grist combines the flexibility of a spreadsheet with the robustness of a database to organize your data. Its columns work similarly to how they do in databases and cells can be filled with formulas like in spreadsheets.
Livegrep is a tool, partially inspired by Google Code Search, for interactive regex search of ~gigabyte-scale source repositories.
There are a couple of ways to achieve rapid software development. For example, empowering engineers to design user experiences, hiring autonomous product engineers, maintaining transparency with clear goals and metrics, forming small startup-like teams, and focusing resources on building rather than non-engineering roles are all methods to ship faster.
This is a brief history of the evolution of software development from the 1970s to the present. It walks through how software development went from a niche field to a mainstream industry and describes how the gap between product management and development is closing. Based on these trends, engineers and managers should focus on gaining more product perspectives in order to thrive in the upcoming AI world.
The Web Integrity API would let websites request a token that tells websites key facts about the environment of the user. However, Chrome is no longer working on this API.
This article provides tips for those who attend tech conferences, from researching the conference to how to properly network at one.
Sponsored
PostHog is the developer-first alternative to 7+ tools [5] companies use to ship new features, analyze user behavior, and optimize their product. Analyze, test, observe, and deploy new features [5] from a single platform while keeping full control of your customer data.
Designing REST APIs using best practices can improve their usability. This guide goes over multiple tips and examples of how to do so, such as using plural nouns for collections in URLs, avoiding unnecessary path segments, and refraining from adding extensions like ".json" to URLs. It also recommends not returning arrays as top-level responses, avoiding map structures in JSON responses, using strings for all identifiers, and more.
Performance scores from Lighthouse in Chrome DevTools are sometimes different from Google’s PageSpeedInsights (PSI). This is because PSI uses real life data pulled from Chrome user experience reports, while Lighthouse uses different data. This post takes a closer look at how various performance tools audit and report on performance metrics like core web vitals, why the metric values could be different across different reports, and what that means about your website's real performance.
Bear does not use client-side JavaScript for privacy reasons. Instead, when a user hovers their cursor over a page, it triggers a CSS rule that makes a URL request to log the page hit. The code then checks the user-agent to verify if it's not a bot, extracts browser and platform information, and hashes the IP address with the date to create a unique page "read."
Joining a startup at the Series A, B, or C stages offers a balanced risk-reward profile. Startups backed by top VCs tend to have better exit odds and valuation growth. To prove this, this article looks through over 14,000 data points of US-based startups that raised funds. Employees who joined Instacart during Series C or later rounds would probably have earned more money if they had opted for a FAANG company instead or received their compensation entirely in cash and invested it in the stock market.
This author shares their journey of quitting their job as a programmer and reflects on their career in the field. They discuss valuable lessons learned, such as the importance of having opinions on technical decisions, the distinction between writing code and debugging, and the significance of a clean, understandable Git history. They also emphasize the importance of understanding hardware, even in a world of abstractions.
VSCode Extension Tester is a package aimed at facilitating UI testing of Visual Studio Code extensions using selenium-webdriver. It can obtain a suitable version of ChromeDriver, package and install extensions into a test VSCode instance, and execute tests.
Rspress is a fast static site generator. It features fast startup times due to a Rust-based build tool. It also supports Markdown, has built-in full text search, and offers a plugin system for custom themes.
Google's 2023 Accelerate State of DevOps Report reveals that teams with faster code reviews experience a 50% improvement in overall software delivery performance. Additionally, other benefits of faster code reviews include improved code quality, reduced developer stress and burnout, and enhanced developer satisfaction. Various methods for speeding up code reviews include pair programming, goal setting and benchmarks, continuous merge techniques, and the use of AI for code review automation.
2023.11.02·devinterrupted.substack.com·5 min read·TLDR Web Dev This is a detailed guide for engineering managers on organizing their week to balance various responsibilities. It gives tips on how you can establish daily routines for consistency, time management, and stress reduction. It suggests starting with a review of daily agendas and ensuring time for reflection and connection with the team. The article also highlights the importance of 1:1 meetings and standup meetings, stressing to adapting their frequency based on team feedback and needs.
Hacker News commenters discuss Express and alternatives for building Node.js backends.
A comprehensive list of common Node.js errors with solutions, such as common ReferenceErrors, unhandled exceptions in streams, and more.
GitHub is now using secret scanning to scan all public packages on npm for leaked secrets. If a potential secret is detected, the service provider that issued the secret will be notified, not the package maintainer.
JSON's popularity is due to its human-readable format, language-agnostic nature, and support in web browsers and APIs. However, it can introduce performance challenges such as parsing overhead, serialization/deserialization inefficiencies, and lack of support for binary data. This article explores alternatives like Protocol Buffers, MessagePack, BSON, and Avro, and provides optimization strategies such as minimizing data size, using arrays wisely, optimizing number representations, and employing server-side caching. Real-world examples from LinkedIn, Uber, Slack, and Auth0 of these alternatives in practice show improved performance over JSON.
TPSGenerator was created to handle large-scale livestreams like Taylor Swift's concert. It initially worked on a single machine, generating a specified number of transactions per second. As the need for higher throughput grew, especially with events like Cyber Monday, the tool evolved from a single-host system to a distributed one. Utilizing a divide-and-conquer strategy, the tool’s developer implemented a Controller → Queue → Worker architecture, where tasks were broken down into smaller, manageable ones, and distributed among multiple machines for execution.
Development and production environments have different rules and purposes, with production requiring strict adherence to guidelines for stability. Schemas should prioritize growth (adding new elements) over breakage (removing or changing existing elements). Effective schema management emphasizes careful naming, the use of aliases and namespaces, annotations for clarity, and planning for continuous expansion.
Even if not pursuing a management track, it’s important for senior engineers to invest in non-technical skills to grow. This article discusses several key non-technical skills that enhance engineering leadership, including running effective meetings, mentoring junior engineers, negotiating technical priorities, and communicating clearly.
Adding loops and conditionals can quickly make code harder to understand. To reduce cognitive overhead and improve code readability, it's advisable to encapsulate complex logic within functions or methods. This simplifies control flow and makes it easier for reviewers to understand and identify logic errors, leading to maintainable and less error-prone code.
Sponsored
The creator economy is exploding, and paid membership programs are key to sustainable growth. Memberful [10] offers reliable and easy-to-use tools to build a membership business from an existing website [10] with a full-featured GraphQL API, webhooks, SSO, and much more. ✔️ Maintain full control and ownership of your audience, brand, and membership.
Material Design 3 comes with the addition of a web-based set of components that implement the Material UI design system. The release also includes 19 different components, CSS theming, and accessibility best practices baked in.
Streamdal is an open-source data observability and governance tool consisting of a server, an SDK, and a console UI. Its features include data observability, data quality monitoring, data governance and enforcement, data transformation, and data obfuscation.
This article compares how AWS, Microsoft Azure, and Google Cloud have handled recent regional outages. It delves into each’s communication during the incidents, preliminary incident details, and postmortem analyses. The author praises Azure's postmortem and AWS's communication while noting that Google Cloud provided the most detailed written post-incident analysis of all three providers.
2023.11.01·newsletter.pragmaticengineer.com·17 min read·TLDR Web Dev Many developers face the dilemma of having numerous project ideas but limited time to execute them. To address these challenges, organize ideas, avoid overcommitment, release projects early to gather feedback, and set clear expectations for maintenance. The key is finding a balance between creating new projects and maintaining existing ones.
A list of quick debugging commands to help understand a failing Docker container better.
React scripts handle tasks like module bundling and allow developers to focus on delivering business value rather than dealing with complex configurations.
A refresher on the 9 types of API testing, including functional, regression, and load testing.
Stack Overflow is using more Svelte as it allows it to experiment and ship faster.
2023.11.01·the-stack-overflow-podcast.simplecast.com·15 min read·TLDR Web Dev WebSockets is a communication protocol that enables bidirectional communication between applications. React itself does not require a specific library for WebSockets, though some do exist. This article dives into best practices for managing WebSocket connections in React with code examples. It explores different approaches, such as using the "useWebSocket" hook, managing the connection in the top-level component, using the Context API, or creating a custom hook.
This tutorial discusses how to recreate Stripe's morphing menu animation in React. It provides code snippets and explanations for creating the interactive navigation menu with hover effects. The tutorial starts with a basic React app, generates markup using AI, and then adds the necessary logic (hover tracking, animations) to achieve the desired animation and interaction effects.
The blog post delves into practical uses for GraphQL directives at Zalando, shedding light on how they help in defining authorization requisites and managing metadata efficiently. Two directives, `@isAuthenticated` and `@sensitive`, are highlighted for their roles in ensuring authentication and protecting sensitive data. These directives not only offer granular control in the organization’s API development process but also enhance the security and efficiency of data handling.
Recent advancements have made CSS more powerful and flexible, with features like nesting, color manipulation, containment, and style queries becoming native. These enhancements have simplified complex tasks and reduced the need for external tools, making CSS a more capable language for web development.
This article debunks several myths, such as the idea that someone should do estimations independently, emphasizing the benefits of team collaboration in estimations. It also challenges the notion of using man-hours instead of story points, highlighting that story points better represent the variability in development tasks. Additionally, it emphasizes the importance of discussing and detailing stories during estimations, as well as the value of planning poker sessions for obtaining diverse viewpoints within the team.
Talented programmers should not be forced into management roles, but rather allowed to continue coding because their expertise can benefit less experienced developers. Experienced programmers can play a crucial role in shaping strategic and executive decisions within a company and their technical expertise should be valued as much as other disciplines in management.
Writerside is a new technical documentation tool from JetBrains. It comes with multiple features, such as a built-in Git UI, automated tests, Markdown support, live preview, and more. It also has REST API documentation generation.
background-removal is a powerful JavaScript package that allows developers to seamlessly remove the background from images directly in the browser. With its unique features and capabilities, this package offers an innovative and cost-effective solution for background removal tasks without compromising data privacy.
Apple CPU architecture has evolved over the past few decades. Today, it’s one of Apple’s unique competitive advantages. This article goes through the four ages of Apple’s CPU architecture, from the Motorola 68k in 1984 to the Apple Silicon chips (M1, M2, M3) introduced in 2020. It provides a detailed walkthrough of each CPU’s architecture, advantages, and disadvantages.
2023.10.31·jacobbartlett.substack.com·26 min read·TLDR Web Dev An employee saved their company half a million dollars in a few minutes by making a simple change in the configuration panel. The situation was absurd, as the inefficiency they fixed should have been addressed much earlier. The company had a history of poor decision-making, hiring both talented individuals and inexperienced consultants, resulting in a chaotic and inefficient analytics platform. Despite the employee’s efforts, the organization seemed more interested in maintaining the illusion of competence rather than acknowledging its operational shortcomings.
This blog describes the experience of trying to add Python 3.12 support to a Python package and the challenges faced in the Python packaging ecosystem. It highlights the issues that come up when trying to use python setup.py and covers modern tools and standards like pyproject.toml. There are many issues with documentation and information for guidance on Python packaging.