Signals are variables that automatically track where they're used, updating the UI only when their value changes. This offers finer control over UI updates compared to React's top-down re-rendering. A proposal for Signals as a native JavaScript feature has reached Stage 1, which means that it could be standardized across frameworks. There's a library called use-signals which shows how Signals can fit into React while still letting React be React.
To make clear engineering architecture diagrams, choose the right diagram type for your concept and prioritize the core elements. Don't try to express everything in one diagram.
To learn data engineering effectively, be consistent by setting small goals daily. Portfolio projects also matter when getting hired, especially if you're an entry-level engineer. Communities are useful to learn more and have support on tough days or weeks.
Remember how much you enjoyed programming challenges early in your career? CodeCrafters [11] lets you keep practicing and learning with advanced challenges [11] designed by world-class experts. If you ever wanted to recreate Redis, Git, or Docker [11] with your own hands just for the heck of it, this is for you. Try your first CodeCrafters
FileKitty lets you select multiple files from a directory and merge them into a single file. This is ideal for combining files before using them in a single format or for easily pasting file contents into an LLM to provide context.
Google's new round of layoffs affects teams working on Flutter, Dart, and Python. Flutter's co-founder recently left Google, which makes the future of Flutter and Dart more uncertain. The entire US-based Python team has been disbanded, with work potentially shifting to Munich in a cost-cutting move.
Josh Watzman, a software engineer at Facebook, and his coworker built an LLM-powered quiz game that became popular online. They found LLM APIs simple to use and found that for a good user experience, it was best to immediately stream LLM responses. Since LLMs are functionally text prediction tools, they are great for language tasks, but not as good for interpreting non-textual information. Interestingly, immediate streaming of LLM responses is crucial for a positive user experience, even if it doesn't reduce overall response time.
The recent hype around "AI developers" replacing software engineers is a marketing strategy by startups trying to break into a market dominated by Microsoft's GitHub Copilot. AI tools are still far from replacing human developers, but these startups need to make bold claims to get attention. While AI is changing how software is created, fully replacing engineers will either never happen or is a long time away.
2024.05.02·
blog.pragmaticengineer.com·9 min read·TLDR Web Dev
The “Saff Squeeze” debugging technique is used to debug failing tests. It involves progressively inlining parts of a failing test until pinpointing the problematic logic. The result is a minimal failing test, which then makes it easy to fix.
The PostgreSQL extension pgvector has sped up over 150x this past year in its index build times. This is due to binary quantization methods, which reduces index sizes. New indexing methods and CPU-specific SIMD acceleration also helped increase query throughput and reduced latency.
Engineers need to develop a whole new set of skills to progress past the senior engineer level. They need to learn to scale themselves, navigate ambiguity, and influence without authority through credibility and personal connections.
To become a better developer in 2024, get better at using AI tools like GitHub Copilot, use shortcuts often, and focus on soft skills. It's best to use AI in a way that makes you more productive, for example, by automating boilerplate code and finding bugs early.
Dokploy is a free self-hostable platform that makes application/database deployment and management easier. It can deploy any type of application (Python, Go, Node.js, etc) along with all major databases. Dokploy comes with real-time monitoring, docker management, and Traefik integration for routing and load balancing.
Perplexica is an AI-powered search engine that searches the web and understands your questions. It uses machine learning algorithms like similarity searching and embeddings to refine results and cite sources.
Prompt engineering has evolved a lot and there are certain strategies to get the most out of LLMs. Basic strategies include zero-shot, few-shot, and instruction prompts, where users give the LLM a task description (zero-shot) and a couple of examples (few-shot). Advanced strategies include step-by-step reasoning with examples (Chain-of-Thought prompting) and self-consistency, which is where multiple reasoning paths are generated and then a majority vote is taken for the answer.
2024.05.02·
cameronrwolfe.substack.com·50 min read·TLDR Web Dev
There needs to be a focus on MLOps for organizations to be great at machine learning. This means that ML engineers should engage in data work, feature engineering, model experimentation, evaluation, deployment, and monitoring. Experimentation and evaluation should be encouraged. Successful MLOps teams have high velocity, great validation (early error detection), and good versioning practices.
2024.05.02·
artificialintelligencemadesimple.substack.com·17 min read·TLDR Web Dev
Sites allowing LLM bots to crawl them face a lose-lose situation as they incur costs in serving bot requests without receiving traffic in return while also subsidizing the training of a competitor's monetized LLM model.
Bugs sneak out when less than 80% of user flows are tested before shipping. But getting that kind of coverage — and staying there — is hard and pricey for any sized team.
Our World in Data, a charity org that shows charts about the world, received a complaint about slow map charts. After some profiling, a developer found that the k-means clustering algorithm the site was using was the reason. The issue was due to a 3-character typo in the JavaScript port of the algorithm. Fixing the typo resulted in a 20x speed improvement.
This article describes a new way to show music notation responsively on the web using CSS Grid. The system defines musical staves as grids, allowing notes to be positioned by pitch (on the y-axis) and time (on the x-axis). This approach is responsive, allows for easy swapping of clefs and time signatures, and makes sure elements like chords and lyrics are aligned properly.
Creating software that is “good enough” is much better than trying to create software that is perfect. Software can always be iterated upon after release. HTTP and HTML are examples of imperfect technologies that have staying power thanks to their continuous improvement.
Distractions, usually from too many meetings, are the biggest problem in today's work culture. They prevent engineers from entering a “flow state” where they can do deep work and complete their tasks much faster. Managers can help by clustering meetings together and improving meeting culture. Engineers should protect their focus time and keep their phones away while in deep work.
Svelte 5 is now in the Release Candidate stage, which means the design of the framework is mostly set. There will probably be no breaking changes, which means developers can now try it out without worries about future changes breaking their project.
Extension.js is an easy way to create cross-browser web extensions without any build configuration. It's plug-and-play and has built-in support for TypeScript, WebAssembly, React, and modern JavaScript.
Current AI leaderboards aren't useful anymore because they don't account for the cost of running AI agents. Researchers should instead use Pareto curves to visualize the tradeoff between accuracy and cost. Surprisingly, simple baseline agents can be just as accurate as the complex, costly agents that top leaderboards.
The AI-powered search engine Perplexity, which has tens of millions of users with less than 50 employees, uses AI internally to inform all aspects of building the company. It has small teams of 2-3 people that work in parallel to reduce any coordination costs. The company hires self-driven and very proactive engineers.
Amazon's AI coding assistant CodeWhisperer has been rebranded as Q Developer and now includes testing, transformation, and autonomous feature implementation.
run0 is a sudo-like command that provides a more secure and user-friendly way to temporarily get sudo privileges while handling issues like the size of the sudo binary.
An S3 bucket can lead to a massive AWS bill, even when it's empty. AWS charges for all S3 requests, including unauthorized ones (4xx errors), meaning someone trying to mistakenly write to your bucket still incurs costs for you. Misconfigured open-source tools and S3 requests without a specified region can also create unexpected costs that add up.
Database schema changes are complex and mistakes can cause errors or downtime. This article goes over 18 different schema change mistakes, including common ones like leaving accidental changes in the schema or failing to acquire locks. It also goes over more complex, specific mistakes and how to not make them by following best practices.
SQLite uses bytecode to represent prepared SQL statements. This is because bytecode is easy to print and review. It also makes debugging easier because it separates the SQL parsing stage from the SQL execution stage. As SQLite is designed to run within the same process as the application, bytecode allows SQL statements to be executed step-by-step.
This is an old Hacker News thread where people share their experiences of the dot-com crash. At the time, developers had to try much harder to get a job and learn the “boring technologies”. Others left the tech industry completely and never came back. Most that were affected were either entry-level or near-retirement.
Employees are motivated by fairness and transparency at work. This means managers should explain how decisions are made, how compensation works, and why recognition is awarded. They should also be as objective as possible when making decisions that affect employees.
A simple tool written in Python for measuring Internet performance at home. It measures several performance metrics such as packet loss, latency, jitter, and DNS performance. It also aggregates these metrics into a common score, which you can use to monitor the overall health of your internet connection.
2024.04.30·
links.tldrnewsletter.com·GitHub repository·TLDR Web Dev
LLMs have an important limitation: they cannot truly generalize or extrapolate beyond their training set. For example, they can't solve word puzzles like Wordle because these tasks require iterative steps with memory that LLMs can't effectively manage. LLMs also fail to “think ahead” and their “thought” drifts over multiple steps of prompting.
Linux starts a process first by calling the execve() system call, which provides the kernel with a path to the executable file. The kernel then prepares the new process and maps its relevant sections into memory. Then, control is passed to the program, and execution is started.