Hurl is a command line tool designed to execute HTTP requests specified in a straightforward plain text format. It offers features such as request chaining, value capturing, and query evaluation on response headers and bodies, making it suitable for both data retrieval and HTTP session testing. Hurl supports working with various types of APIs, including HTML, REST, SOAP, GraphQL, XML, and JSON.
Leo is a functional, statically typed programming language designed for creating private applications. It abstracts low-level cryptographic concepts, facilitating the integration of private apps into existing systems by compiling to circuits, making zero-knowledge proofs feasible. Leo offers developers tools for circuit sanity checks, including unit tests, integration tests, and console functions.
A system called "epitaphs" at a company this author worked at had entries for departed employees. The company’s employees also created their own system to track changes in the employee directory, allowing for insights into departures and other events. The author provides technical details for implementing similar systems which can be created informally at other companies to help employees have a better sense of layoffs and departures.
RSS (Really Simple Syndication) feeds are useful for consuming high-quality content with minimal noise. They are a good way to access thoughtful long-form content without the distractions often found on social media platforms. Despite some criticisms, such as a lack of discoverability and non-tech-savvy user-friendliness, RSS remains a valuable tool for content consumption due to its control, reduced low-value content, and just-in-time access to information. They are a relic of the “old web” in today’s algorithm-dominated world, but as AI floods algorithms, RSS may make a comeback.
Small optimizations can go a long way in improving performance. There are three categories of optimizations: architecture, algorithms and data structures, and source code. To find opportunities for small optimizations, one can use profiling applications and try utilizing things like hybrid algorithms.
Web development has an overwhelming number of frameworks and tooling available today, but that doesn’t necessarily mean it’s gotten more complex. It’s becoming easier to over-engineer web applications.
Hacker News commenters offer advice on sales, such as developing strong branding and understanding the client’s purchasing authority. They also suggest books like Never Split the Difference and Draw to Win.
Many organizations are moving their cloud-based workloads back to on-premises infrastructures due to security concerns, unmet expectations, and unexpected costs - 43% are finding cloud migration more expensive than anticipated.
DotSlash is an open-source tool developed by Meta that manages large executables efficiently by replacing them with small text files. These files tell DotSlash where to download and verify the actual executable for your platform. This avoids storing large binaries in source control and reduces clone times. DotSlash is used at Meta for managing internal tools and open-source projects alike and it integrates with GitHub releases for easy distribution.
Remix and Astro are currently getting a lot of buzz as simpler alternatives to Next.js, the dominant framework of the React era. Remix is a more direct competitor to Next.js, since they are both based on the React library, but its origins go back a full decade. This article looks at what inspired the creators of Remix to start the framework and how Remix tackles the complexity of React. Shopify, for example, is using Remix internally for its admin dashboard and apps.
GitHub’s Engineering Fundamentals program helps GitHub deliver on its commitments to availability, security, and accessibility. The program uses scorecards, which are created by teams and are specific to each service, to track progress against these goals. An example is the “secret scanning” scorecard, which looks for secrets in repositories.
This author shares their learnings from their time at GitLab, focusing on aspects like company culture, product development, and team structure. GitLab prioritized self-hosted installations over the SaaS offering, leading to performance issues. Since GitLab offered both a SaaS and self-hosted model, it created conflicts of interest and challenges in maintaining separate codebases. Using Ruby on Rails allowed the company to grow fast, but created some challenges with performance and maintainability.
To onboard a new company or team effectively as a software engineer, it’s helpful to start by building knowledge and relationships quickly through targeted conversations with colleagues. Then, contributing code quickly, even through small changes, helps solidify understanding and integrate into the team even faster. Onboarding buddies and well-structured processes like documentation and backlog support smooth the process.
LLRT is a lightweight JavaScript runtime designed to meet the demand for fast and efficient serverless applications. It can offer up to 10 times faster startup and 2 times lower cost compared to other JavaScript runtimes that run on AWS Lambda. LLRT is developed and created by AWS.
Microsoft has announced Sudo for Windows, a new command-line tool that allows users to run elevated commands without opening a separate window. It offers three configuration options: opening a new window, closing input, or running inline. This blog post discusses the security implications of each configuration and the differences between Sudo and the existing “runas” command.
Vercel has announced new AI integrations that allow developers to easily incorporate AI models and services into their applications. This includes a model playground for testing various providers and an AI SDK for seamless integration.
Google Bard is now called Gemini and offers two new experiences: Gemini Advanced and a mobile app. Gemini Advanced gives access to the most powerful AI model, Ultra 1.0, for complex tasks like coding and creative projects. It costs $19.99/month with a free 2-month trial and is available in English with more languages coming soon. The mobile app lets you chat or add images for help on the go. It's currently available in English on Android and iOS in the US.
Sundar Pichai, Google's CEO, says that the way people find information online is changing. Social media apps, short-form videos, and generative AI are challenging the traditional way of using search engines. Pichai says that Google is still committed to search, but that the company is also experimenting with new ways to help people find information. He says that the future of search may be a combination of traditional search and more generative AI experiences.
While staying "hands-on" with coding decreases as you climb the leadership ladder, maintaining technical knowledge ("staying technical") is still important. It allows you to understand your team's challenges, make informed decisions, and communicate effectively. Aim to dedicate 20% of your time to technical activities like attending meetings, contributing to documentation, working on small internal tools, and participating in ongoing learning.
A comprehensive reading list and short explanations of fundamental concepts in distributed systems, including foundational theory (models, failure modes, consensus) and practical matters (fallacies, logical clocks, etc.).
Interaction to Next Paint (INP), which is a holistic approach at measuring responsiveness, will officially become a Core Web Vital on March 12, 2024, replacing First Input Delay (FID). This means that website owners should check and improve their INP ahead of time.
CSSformalize is a CSS framework for effortless customization of native HTML forms. With just a few clicks on an on-site interface, you can define paddings, dimensions, and color schemes tailored to your preference. Then, you link the generated CSS file to your project, integrate the automatically generated CSS variables, and watch your form designs come to life.
Dan Abramov, a core React contributor, offers his insights on Server Components in a podcast interview. Server Components help deal with the limitations of pure client-side React, especially performance bottlenecks and data fetching complexity.
Sponsored
POST/CON 24 [5] is the place to be if you’re looking to hear from industry leaders, gain new skills, or engage with the global API community. And there’s a 50% discount if you sign up early [5]!
This post walks through how to build a search engine from scratch using Python. The project was motivated by the desire to address the "Small Website Discoverability Crisis" and make small websites more visible. The post walks through the key components of the search engine, including the crawler, inverted index, ranker, and interface, providing both theoretical descriptions and practical implementation details. The project is helpful for deepening one’s understanding of search engine mechanisms.
pg_analytics is a Postgres extension that significantly improves the analytical performance of Postgres databases by up to 94 times compared to traditional methods. It addresses the challenges faced by developers dealing with slow query times and poor data compression, offering a drop-in solution within Postgres itself. This post explains the technical workings of pg_analytics, explaining the introduction of deltalake tables and integration with Apache Arrow and Apache DataFusion.
We traditionally use a "public" folder to serve files in Node.js applications. However, this only works for static assets and doesn’t work for files like profile pictures, private files, or generated files - these files are served from an API and loaded into memory. This isn’t scalable when there are a lot of users. Instead, it’s useful to use a stream to return large files in chunks. This article looks at a couple of ways to achieve this using both Next.js API routes and also the more generic Route handlers.
Many developers have experienced “flow state”: your ideas are flowing, time and space fade away, and the path ahead of you is clear. Achieving flow state is not only great for productivity, but also enhances dopamine and endorphins, resulting in an increased feeling of motivation, thinking ability, and general well-being. To better reach flow state, it’s helpful to optimize your environment, map out your work ahead of time, and find joy in the work that you’re doing.
Once your app gets into an undesirable state, the best thing you can do is reset it and start from a fresh, well-known, and correct state. Erlang’s "let it crash" philosophy suggests resetting parts of an application upon failure. While effective, it requires developers to manually track and restore application states. Another approach, "durable execution," allows computation to run uninterrupted by storing minimal data for state reconstruction, making local variables resilient even through restarts.
The phrase "wherever you find podcasts” highlights a stark contrast between podcasting and closed media platforms like YouTube or TikTok. Podcasting's open format empowers creators to control their content and audience relationships, enabling portability and resisting surveillance-based advertising. There are challenges in podcast economics, but podcasting is a beacon for the open web's renaissance and a model for reclaiming control in online spaces. Podcasting is similar to RSS feeds for blogs and newsletters.
SQLite Web is a web-based SQLite database browser written in Python. It lets developers add, drop, or edit tables, columns, rows, and indexes. SQLite Web works with both existing SQLite databases or can be used to create new ones. It allows for the import and export of both JSON and CSV files.
Concrete.css is a simple, classless CSS framework. It offers styling for typography, sections, buttons, images, lists, forms, tables, blockquotes, and progress bars.
Meow is a CLI app helper. It can parse arguments, convert flags to camel case, negate flags with “--no-” prefixes, and output helpful descriptions and help text. Meow has no dependencies.
While working at startups and moving fast, it’s important to use existing tools before adding new ones to avoid complexity. Software often changes fast at startups, so optimize software for change and focus on iteration, testing, and implementing a modular monolith approach. Store data in databases for easy querying, utilize decision logs, and employ continuous deployment practices for efficient software delivery.
The ideal size for small pull requests (PRs) is around 50 lines long. Smaller PRs are reviewed and merged faster, less likely to be reverted, and attract more review comments per line changed. Data from various repositories suggests that PRs between 25-100 lines offer optimal benefits across speed, review quality, and total code output. Extremely small PRs (under 25 lines) tend to have a higher revert rate, while very large PRs (over 10,000 lines) may receive less engagement and feedback.
Google Cloud’s localllm enables developers to utilize LLMs on local CPUs without GPUs. Developers can use quantized models and Cloud Workstations for cheaper LLM usage and better privacy controls compared to online models like GPT-4.
Git has an auto-correct flag that replaces typos with a suggested corrected command.
React components for resizable panels, supporting horizontal, vertical, and persistent layouts.
2024.02.08·react-resizable-panels.vercel.app·Tool·TLDR Web Dev jQuery 4.0 beta drops support for IE10 and older, removes deprecated APIs, and is now importable with ES modules.
The latest ChatGPT-4 system prompt can be used to help you understand and prompt the LLM better.
Sponsored
API developer? This year’s POST/CON [5] conference in San Francisco is the place to be. Hear from industry leaders, gain new skills, and engage with the community. There’s a 50% discount if you sign up early [5]! A small taste of what you can expect from this two-day event:
Urb-it uses Kubernetes to leverage container orchestration capabilities for its microservices architecture. Some of the lessons learned after using Kubernetes in production for over eight years include the importance of keeping Kubernetes and Helm up to date, backing up secrets, planning for disaster recovery, keeping certificates up to date to prevent cluster crashes, and going all-in with a cloud provider. Kubernetes allowed Urb-it to scale in a cost-efficient manner and develop new products and services faster.
Engineering for 99.5% uptime is much more cost-effective than 99.99% for most startups. This is because in order to achieve that level of reliability, you will need specialized architecture, redundant infrastructure, and streamlined operational and organizational procedures. The cost comes in terms of system complexity, the number of engineers required and their specializations, experience levels, and corresponding salaries, as well as significantly increased operational costs and arrangements. 99.99% guaranteed uptime must be 50 times as reliable as one with "only" 99.5%.
BuildKit is Docker's new default build engine. It improves Docker builds by parallelizing build steps, optimizing multi-stage builds, and utilizing layer caching for enhanced performance. BuildKit uses a directed acyclic graph (DAG) data structure called LLB to represent dependencies and has frontends and backends to convert Dockerfiles into LLB and build Docker images efficiently.