The recent Google Cloud Next keynote showcased Google’s vast, scalable AI infrastructure, which is difficult to replicate. Gemini models can now be integrated with Google Search and enterprise data sources, reducing hallucinations and creating better answers. Gemini 1.5 Pro can process up to 1 million tokens of information, which is a breakthrough in long context understanding. Google is integrating Gemini into many of its enterprise products, such as Google Workspace and code development tools, which is another competitive advantage for them.
Git’s error messages can be confusing to understand, but there are some great strategies to help decode them. Git status clarifies the current branch state, and git log helps examine commits and identify divergence points. You can also customize your shell prompt to display branch status, which can be helpful.
This author was receiving encrypted emails with blank bodies from his mother. The issue was Proton's use of the Web Key Directory (WKD), which automatically encrypts emails if a public key is found for the recipient's address, even if the user didn't explicitly enroll in the service. The author’s email address was enrolled, so he received blank emails.
An open-source game to learn and understand Git better.
Some interesting use cases for GPT-4 with Vision include nutrition insights from pictures, UI replication from screenshots, web scraping, and data extraction.
A vulnerability named "BatBadBut" was discovered in the Rust standard library on Windows that allows arbitrary command execution due to improper argument escaping when invoking batch files.
A look into how one developer improved slow Jest tests by fixing memory leaks, disabling redundant type checking, and optimizing some functions.
Sponsored
Fortune 50 companies like AWS and Google Cloud and fast growing startups like Vercel and Secureframe work with TLDR to reach our audience of over 4 million tech-savvy decision makers with highly customized campaigns (like this one!). We help manage your campaigns from end to end, ensuring that your performance marketing efforts hit your internal KPIs without breaking your budget. Learn more about working with us [3].
Reddit started as a monolithic Python application and has evolved its architecture into smaller microservices in Golang. It replaced database snapshots with real-time data replication using Kafka. Reddit has a dedicated metadata store built with AWS Aurora Postgres and it uses Flink Stateful Functions for modern rule-based content moderation.
This tutorial teaches how to use Next.js Server Actions for manipulating data. Server Actions, combined with React Server Components (RSC) and the App Router, can be used to edit entities within the database without the need to convert Server Components to Client Components for database interactions.
GitHub engineers use GitHub Copilot to semi-automate repetitive tasks like protobuf ID number generation. It also helps them stay focused by generating regular expressions on the fly. GitHub Copilot can be used for documenting code properly.
Simpler code is easier to understand and manage. Establishing clear design goals and non-goals can prevent over-engineering when complexity creeps in. Using less powerful tools can sometimes lead to simpler solutions as the constraints force less complex designs.
Great debuggers follow systematic processes rather than haphazardly tweaking code. They constantly form and test hypotheses, take breaks, and document their learnings from debugging.
Gemini Code Assist offers AI-powered assistance to software engineers in their IDE, similar to GitHub Copilot. It is available to try at no cost until July 11.
Airbnb has open-sourced Chronon, which is an open-source end-to-end feature platform that allows machine learning teams to easily build, deploy, manage, and monitor data pipelines for machine learning. It’s currently used by Airbnb and Stripe for major use cases internally.
DrawDB is a database entity relationship editor right in the browser. It can be used to build diagrams with a few clicks, export SQL scripts, and more.
Datadog's Real User Monitoring (RUM) package has an API that can lead to sensitive user data being accidentally sent to unintended domains. The "site" parameter can be confusing - developers can easily mistake it for their website domain. Instead of defaulting to Datadog's data intake domains, the RUM package constructs a new domain based on the provided "site" value, which could potentially send data to a domain the developer doesn't control. This happened to a company called Corporate Clash, where a misconfiguration led to user data being sent to an unauthorized third-party domain.
2024.04.10·sheriffcranky.substack.com·10 min read·TLDR Web Dev Google’s new Gemini Code Assist is an AI-powered coding assistant that helps programmers streamline development tasks. It runs within popular IDEs and can generate code, explain existing code, and assist with large-scale codebase changes. However, similar to GitHub Copilot, it can’t write code completely by itself and will probably need developer oversight to be fully effective.
A list of software bugs and outages that occurred on February 29th, 2024, including problems like payment terminal failures at gas stations and minor glitches in weather apps.
The US Army has announced a new policy for agile and lean software development practices.
zx is a tool for writing complex scripts in JavaScript. zx version 8.0.0 makes it smaller, faster, and adds new features like easier command handling and better process control, but changes some defaults and removes the SSH API.
Google has announced Axion, a new custom-designed Arm-based CPU for data centers that is meant to be more performant and energy-efficient compared to existing x86 and Arm-based solutions.
Distributed SQLite databases sacrifice consistency, transactions, and scalability. Traditional databases like PostgreSQL, paired with effective HTTP caching for speed, are better choices than using distributed SQLite. The upside to SQLite databases is that they are really fast, but at some point, the maintenance overhead outweighs the speed benefits.
Optimistic UI is a technique used to improve the perceived performance of web applications by updating the UI instantly in response to user actions, even before getting a response from the server. React's experimental hook useOptimistic() simplifies the implementation of Optimistic UI by providing a way to manage temporary optimistic state alongside the true state. Internally, useOptimistic() leverages React's update mechanism but adds a special revertLane for easy switching between optimistic and true states.
Responsive images in HTML are a way to provide multiple versions of an image, optimized for different screen sizes, resolutions, and layout conditions. The browser will automatically select the most appropriate image source for the current display and layout. To implement responsive images, you can use the srcset and sizes attributes on the `img` element, or use the `picture` and `source` elements for more advanced techniques like art direction. Modern browsers also support features such as lazy loading with sizes=auto.
This author worked full-time on an open-source project for 503 days and learned a large number of lessons, such as how to interact properly with project users and contributors. He shares the importance of using your online presence to find opportunities and embracing feedback during code reviews instead of being defensive.
Managing up is about helping your manager help you, improving your work relationship and team success by understanding their needs, and aligning your efforts with their goals. This strategy includes effective communication, proactive sharing of goals and challenges, and offering solutions that can make the team better.
Architects should help guide engineering teams by making strategic, high-impact decisions while still allowing team members to have ownership of various parts of the team’s overall work. This means carefully considering decisions and their reversibility, along with documenting potential impact before acting.
Sponsored
Bugs sneak out when less than 80% of user flows [9] are tested before shipping. But how do you get that kind of coverage? You either spend years scaling in-house QA — or you get there in just 4 months with QA Wolf [9]:
Shorebird is code push for Flutter. It also includes other tools in Dart, such as libraries for verifying JWTs and interacting with Redis.
A code snippet you can paste into your dev console on any website. It allows you to visualize the DOM of a webpage in 3D.
C++ Insights is a tool that makes the “behind-the-scenes” of C++ compilation visible to the developer.
Mainframe banking systems are written in COBOL. The industry faces challenges due to an aging workforce and the difficulty of migrating away from legacy systems like IMS. This author’s mother, a COBOL programmer, describes the challenges of maintaining complex, intertwined systems with huge amounts of sensitive data and the need for modernization in the industry.
Ethernet faced challenges from competing technologies and inherent limits in its original design during the 1980s. Digital Equipment Corp. engineer Mark Kempf's invention of the learning bridge, a device that selectively forwards packets between Ethernet LANs, addressed these challenges and allowed for the migration to Ethernet.
Cloudflare experienced a major power failure at a critical data center for the second time in five months, providing a real-world test of the resilience improvements initiated following the first incident. Code Orange, a company-wide initiative to prioritize reliability, led teams across Cloudflare to make their systems more resilient. The most recent outage resulted in significantly less downtime and impact on customer-facing services compared to the prior event.
Andrej Karpathy has put together a GPT-2 implementation in just 1,000 lines of code in a single file.
Linear has completely redesigned its application to address design debt, realign with evolving business goals, and continue improving their user experience.
Software is never truly done. Instead of chasing perfectionism, use timeboxing and user feedback to make software better.
Cloudflare launched twenty new products for developers and a system for easier coding on its platform, such as introducing a JavaScript-native RPC system for streamlined Cloudflare Workers communication.
Code completion tools provide background LLMs with the right context, such as related files and code snippets from the project. This process, known as retrieval augmented generation (RAG), helps guide LLMs to produce more accurate code completions. Sourcegraph's team has detailed the engineering optimizations they implemented to improve code suggestion quality and speed with Cody autocomplete. For example, they found that including whitespace at the end of prompts causes significantly worse responses.
The solution presented in this article adds a loading progress bar to Next.js sites using a custom ‘useProgress’ hook and a ‘ProgressLink’ component, making page transitions smooth without needing router events. It keeps sites responsive and interactive during loads by utilizing React’s ‘startTransition’. The method is future-proof and improves the user experience.
The typical definition of workaholism focuses on long hours, which typically comes with negative consequences. True "high-functioning" workaholism affects a person's well-being (like sleep and healthy habits). It is about maximizing output within a set window of time rather than simply working more hours.
When giving feedback in code reviews, use gentle questions like "I wonder" and "What do you think" to keep the conversation friendly. Avoid "why" questions - use "what" instead to be less direct. Choose softer words to help everyone feel comfortable and open to suggestions. This way, you can share ideas without making anyone defensive.
To ship code faster, identify where you spend most of your time: design, coding, testing, review, or deployment. If you’re new to a codebase, focus on understanding code flow, tracing techniques, and learning from experienced colleagues. To optimize testing and review, use feature flags, batch changes, automate testing, and aim for smaller, well-explained code changes for faster reviews.
AutoMQ is a cloud-native implementation for Apache Kafka. It’s serverless, works with any cloud provider, and can cut your cloud infrastructure bill by up to 90%.
ClangQL is a tool that allows you to run SQL-like queries on C/C++ Code instead of database files using the GitQL SDK.
pgmock is an in-memory PostgreSQL mock server for unit and E2E tests. It requires no external dependencies and runs entirely within WebAssembly on both Node.js and the browser.
Google AI is helping to predict floods better, which could save lots of people and money around the world every year. Utilizing machine learning, particularly LSTM models, Google AI has significantly improved the accuracy and extended the reliability of flood predictions, especially in data-scarce regions like Africa and Asia. It advocates for open-source collaboration, targeted AI investments, and the development of a robust data infrastructure.
DNS cache poisoning attacks exploit weaknesses in DNS to redirect users to malicious sites. Google Public DNS protects against these attacks using a few techniques. It randomizes cases, altering the capitalization of domain names. This protects over 90% of Google Public DNS traffic. Google also uses DNS-over-TLS (ADoT) to encrypt communications with authoritative nameservers.