<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/newstack/best-of/2024/07" -->

---
title: Best The New Stack posts — July 2024 | daily.dev
description: The most upvoted The New Stack posts from July 2024, curated by the daily.dev community.
canonical: https://daily.dev/sources/newstack/best-of/2024/07
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/newstack/best-of/2024/07
og:type: website
og:site_name: daily.dev
og:title: Best The New Stack posts — July 2024 | daily.dev
og:description: The most upvoted The New Stack posts from July 2024, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of The New Stack — July 2024

1. 1  
[](https://daily.dev/posts/5-javascript-security-best-practices-for-2024-mnmjrp9tv "5 JavaScript Security Best Practices for 2024")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
5 JavaScript Security Best Practices for 2024  
JavaScript applications face numerous cyber threats in 2024, including cross-site scripting (XSS), man-in-the-middle (MitM) attacks, and denial of service (DoS) attacks. Key security best practices include securing APIs, implementing Content Security Policies (CSP), input sanitization, and performing regular security audits. Tools like Snyk, ZAP by OWASP, and the Cypress Testing Framework are essential for maintaining robust security in JavaScript development.  
194  
2
2. 2  
[](https://daily.dev/posts/how-to-master-javascript-performance-optimization-pfdo8uvuj "How To Master JavaScript Performance Optimization")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
How To Master JavaScript Performance Optimization  
JavaScript optimization is crucial for ensuring fast and responsive web applications. Techniques include measuring performance with tools like Chrome DevTools, implementing code splitting using dynamic imports and webpack, using lazy loading to defer nonessential resources, and leveraging web workers for heavy computations. Additional methods like minifying code, asynchronous loading, and using CDNs further enhance performance. Adopting these practices helps meet user expectations and improve overall user experience.  
111  
1
3. 3  
[](https://daily.dev/posts/the-anatomy-of-slow-code-reviews-a5rzgotoc "The Anatomy of Slow Code Reviews")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
The Anatomy of Slow Code Reviews  
Slow code reviews are a common complaint among software developers due to various social and cultural factors. Identifying bottlenecks and optimizing the process through well-defined review guidelines, ownership, and iterative feedback can enhance code review times. Implementing review and revision SLOs, prioritizing code reviews, and using tools can further streamline the process and improve developer satisfaction. Encouraging manageable changes and recognizing the importance of cross-team reviews are also key strategies for improvement.  
41
4. 4  
[](https://daily.dev/posts/linux-understand-sudo-to-rule-your-server-twg2uofq0 "Linux: Understand sudo to Rule Your Server")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Linux: Understand sudo to Rule Your Server  
The post explains the importance of the sudo command in Linux for administrative tasks. It highlights the difference between sudo and su, the history of sudo, and details on how users can be added to the sudo or wheel groups depending on the distribution. Additionally, it describes how to configure the sudoers file using the visudo editor to set custom permissions.  
40  
2
5. 5  
[](https://daily.dev/posts/devs-need-system-design-tools-not-diagramming-tools-8xgbuivw4 "Devs Need System Design Tools, not Diagramming Tools")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Devs Need System Design Tools, not Diagramming Tools  
Engineering teams often face the XY problem when selecting tools for software system design, focusing on specific solutions instead of underlying issues. This results in fragmented approaches and significant inefficiencies. System design goes beyond diagramming and requires tools that support dynamic and continuous design processes, incorporating real-time updates, collaboration, and comprehensive system understanding. Modern software's complexity demands tools that facilitate visibility and understanding, surpassing the limitations of traditional diagramming tools.  
38  
4
6. 6  
[](https://daily.dev/posts/install-the-webmin-gui-server-manager-on-alamalinux-1fnabkpd2 "Install the Webmin GUI Server Manager on AlamaLinux")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Install the Webmin GUI Server Manager on AlamaLinux  
Learn how to install and configure the Webmin GUI server manager on AlmaLinux to simplify server management tasks. Webmin provides an extensive range of modules, from handling backups and user management to system logs and software updates. The tutorial covers prerequisites, updating AlmaLinux, adding the Webmin repository, installing Webmin, configuring the firewall, and initial login steps, including converting Unix users to Webmin users.  
38
7. 7  
[](https://daily.dev/posts/4-api-security-best-practices-gwxgqreaj "4 API Security Best Practices")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
4 API Security Best Practices  
APIs are crucial to modern digital solutions, making API security a top priority. Key points include utilizing an API gateway to enforce policies and secure endpoints with HTTPS, and using access tokens like JWTs for robust authorization. These measures help mitigate common risks such as broken object-level authorization and unrestricted resource consumption. Implementing OAuth or OpenID Connect can enhance security further by centralizing the management of access tokens.  
37
8. 8  
[](https://daily.dev/posts/5-creative-ways-developers-are-using-ai-opozjesqv "5 Creative Ways Developers Are Using AI")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
5 Creative Ways Developers Are Using AI  
Developers are leveraging AI in various innovative ways to enhance productivity and streamline tasks. Uses include AI-generated code testing and PR reviews, creating personalized learning paths, automating repetitive tasks, enhancing search tools for programmers, and generating documentation and data models. While the benefits are substantial, experts caution about potential downsides like data privacy concerns and a possible decline in code quality. Despite these challenges, upcoming tools like GitHub Copilot Workspace promise further advancements.  
36  
1
9. 9  
[](https://daily.dev/posts/poor-documentation-is-costly-here-s-how-to-fix-it-ll8wk9xig "Poor Documentation Is Costly: Here’s How to Fix It")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Poor Documentation Is Costly: Here’s How to Fix It  
Effective documentation may seem boring but is crucial for organizational success. Poor documentation can lead to wasted hours, reduced productivity, and employee frustration. It’s vital to regularly review and update documentation, use appropriate tools, and clearly outline essential processes. Investing in good documentation practices can significantly boost efficiency and job satisfaction.  
33  
2
10. 10  
[](https://daily.dev/posts/the-python-linter-ruff-is-a-win-for-open-source-and-rust-zz78esrym "The Python Linter Ruff Is a Win for Open Source — and Rust")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
The Python Linter Ruff Is a Win for Open Source — and Rust  
Ruff, a high-performance Python linter written in Rust by Astral Software, has quickly become a success story in the open-source community. Launched by Charlie Marsh, Ruff aims to consolidate multiple Python development tools into one fast and adoptable solution. With millions of downloads, it offers features like performance and auto-fixes, serving as a drop-in replacement for tools such as Flake8 and isort. Future plans for Ruff include advanced type inference and cross-file analysis. Astral Software continues to expand its toolkit, recently adding the uv package installer, also written in Rust.  
28  
1
11. 11  
[](https://daily.dev/posts/python-meets-javascript-wasm-with-the-magic-of-pythonmonkey-mieri8pnh "Python Meets JavaScript, Wasm With the Magic of PythonMonkey")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Python Meets JavaScript, Wasm With the Magic of PythonMonkey  
PythonMonkey is a groundbreaking JavaScript runtime embedded within Python, built on Mozilla's SpiderMonkey engine, created by Distributive to cut code maintenance costs and bridge the gap between JS and Python. It enables cross-language functionality, letting developers leverage Python packages from JS and vice versa with minimal performance loss. Key features include native support for WebAssembly, a just-in-time compiler, and a runtime environment similar to Node.js. PythonMonkey also offers improved cross-language coercion, stack trace handling, and a better developer experience. The project’s goals include seamless integration of JS and Python libraries and offering a unified development environment.  
26
12. 12  
[](https://daily.dev/posts/next-js-15-cache-rust-adds-to-ai-salaries-and-million-js-vpf9e4syz "Next.js 15 Cache, Rust Adds to AI Salaries, and Million.js")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Next.js 15 Cache, Rust Adds to AI Salaries, and Million.js  
Next.js 15 introduces significant changes to caching, requiring explicit opt-in for caching API fetches and database queries. Vercel's VP of Product Marketing, Lee Robinson, emphasizes improving the local development experience by making operations dynamic. Research indicates that skills in Rust can significantly boost AI-related job salaries. Additionally, Million.js, a minimalistic JavaScript compiler, offers a more efficient way to handle DOM updates compared to React, though it faces challenges like a steep learning curve and a smaller ecosystem.  
23
13. 13  
[](https://daily.dev/posts/how-to-create-a-python-executable-file-with-pyinstaller-katlgp5q6 "How to Create a Python Executable File With PyInstaller")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
How to Create a Python Executable File With PyInstaller  
Learn how to create an executable file from your Python code using PyInstaller. This guide demonstrates the necessary steps, including installation of Pip and PyInstaller, and provides detailed instructions for bundling your app into a folder or creating a single file executable. This method simplifies running and distributing your Python app across different machines.  
20  
1
14. 14  
[](https://daily.dev/posts/you-ll-write-less-code-with-svelte-5-0-promises-rich-harris-b5s3vewjm "You’ll Write Less Code With Svelte 5.0, Promises Rich Harris")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
You’ll Write Less Code With Svelte 5.0, Promises Rich Harris  
Svelte 5.0 promises to be more robust, reliable, smaller, faster, and flexible than its predecessor. It introduces fine-grained universal reactivity and maintains popular features like motion primitives, transitions, and server-side rendering. The compiler output is leaner, reducing bundle size. The use of Signals in Svelte enhances code readability and performance. The post also discusses the adoption curve of Signals and opinions on React Server Components, which help in colocating CSS, JavaScript, and HTML but introduce complexities in managing server and client components.  
19  
3
15. 15  
[](https://daily.dev/posts/how-to-test-how-much-memory-your-java-application-uses-7gi3it9tr "How To Test How Much Memory Your Java Application Uses")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
How To Test How Much Memory Your Java Application Uses  
Understanding a Java application's memory requirements is crucial for maximizing performance and minimizing operational costs. This guide shows how to use garbage collector (GC) logs to determine the necessary memory size. Key steps include simulating real-world loads, interpreting GC logs, and using tools like JMeter for load testing. Practical examples with the Spring PetClinic application and different Java runtimes are provided to illustrate the process.  
18
16. 16  
[](https://daily.dev/posts/develop-a-master-ai-agent-with-langgraph-in-python-dzr47an3y "Develop a Master AI Agent With LangGraph in Python")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Develop a Master AI Agent With LangGraph in Python  
LangGraph, a tool within the LangChain ecosystem, streamlines creating and managing AI agents. It uses states, nodes, and edges to manage complex workflows and interactions, making it easier to build advanced AI applications. The setup involves installing necessary packages and defining an AI agent's behavior using nodes and edges. An example scenario is provided for a customer support conversation using OpenAI's GPT-3.5-Turbo model. The tutorial provides step-by-step guidance, including setting up the environment, building the conversation logic, and running the simulation.  
16
17. 17  
[](https://daily.dev/posts/zed-ported-its-text-editor-to-linux-and-it-s-pretty-special-zpfhmjmve "Zed Ported Its Text Editor to Linux and It’s Pretty Special")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Zed Ported Its Text Editor to Linux and It’s Pretty Special  
Zed, a new text editor designed for Linux, promises speed and extensive features. Built by creators of the Atom editor and written in Rust, Zed offers impressively fast performance and unique real-time collaboration tools, including integrated chat and a feature termed 'multiplayer.' Additional functionalities include customizable UI, automatic language detection, and integration with GitHub Copilot. Zed aims to be more than just a text editor, catering to a community-driven development environment. It's available for both Linux and macOS.  
16  
2
18. 18  
[](https://daily.dev/posts/ansible-vs-salt-which-is-best-for-configuration-management--atuosynh5 "Ansible vs. Salt: Which Is Best for Configuration Management?")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Ansible vs. Salt: Which Is Best for Configuration Management?  
Salt is an open-source software application that offers robust solutions for configuration management, remote execution, and orchestration, making it highly effective for at-scale infrastructure management. Unlike Ansible, which uses an SSH-based, agentless setup that can be cumbersome at large scale, Salt employs a master-minion architecture using the ZeroMQ protocol for faster and more secure communication. Salt's modular and extensible design adds to its adaptability, making it a powerful choice for complex, large-scale environments.  
13
19. 19  
[](https://daily.dev/posts/is-graphql-over-or-do-we-just-need-to-rethink-it--wpbmtleux "Is GraphQL Over or Do We Just Need to Rethink It?")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
Is GraphQL Over or Do We Just Need to Rethink It?  
GraphQL, developed by Facebook and open-sourced in 2015, has gained popularity for its flexible and efficient data query capabilities. However, its growth is now hindered by security, performance, and complexity issues. To ensure its future viability, the community may need to rethink how GraphQL is defined and implemented, leveraging it as a development tool and considering compiler-based implementations to overcome its current challenges.  
13  
2
20. 20  
[](https://daily.dev/posts/how-to-run-databases-in-kubernetes-7dgjjj4yl "How To Run Databases in Kubernetes")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
How To Run Databases in Kubernetes  
Running databases in Kubernetes has been debated, as many prefer managed services for their simplicity. However, there are effective design patterns for running databases within Kubernetes by using node selectors, dedicated node pools, and Kubernetes operators like the Zalando Postgres Operator to ensure high availability and systematic recovery strategies. Employing taints, tolerations, and pod affinities can help manage resource allocation and data integrity. Although setting up may be complex, it can be more cost-effective and provide greater vendor agnosticism compared to managed services.  
11
21. 21  
[](https://daily.dev/posts/7-urgent-lessons-from-the-crowdstrike-disaster-0vkuqdtns "7 Urgent Lessons from the CrowdStrike Disaster")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
7 Urgent Lessons from the CrowdStrike Disaster  
The CrowdStrike disaster highlights critical lessons for IT and software management. Key takeaways include the dangers of relying on monocultures, the importance of quality assurance and staged rollouts, and the necessity of disaster recovery plans and enhanced monitoring. Implementing robust risk management strategies can help mitigate similar incidents in the future.  
10  
1
22. 22  
[](https://daily.dev/posts/how-to-work-with-branches-in-git-and-github-2izvdvx3g "How to Work With Branches in Git and GitHub")  
Article  
![Avatar of newstack](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/newstack)The New Stack · 2y  
How to Work With Branches in Git and GitHub  
Learn to work with branches in Git and GitHub to safely make changes to your project and merge them back into the main branch. Understand the difference between Git and GitHub, and follow a step-by-step guide to create, manage, and merge branches effectively while avoiding common pitfalls like merge conflicts. Remember, never make changes directly on the main branch to ensure stability and consistency in your codebase.  
10

[See all The New Stack archives](/sources/newstack/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/newstack/best-of/2024/07#page","url":"https://daily.dev/sources/newstack/best-of/2024/07","name":"Best The New Stack Posts — July 2024","description":"The most upvoted The New Stack posts from July 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/newstack/best-of/2024/07#items","numberOfItems":22,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/5-javascript-security-best-practices-for-2024-mnmjrp9tv","name":"5 JavaScript Security Best Practices for 2024"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/how-to-master-javascript-performance-optimization-pfdo8uvuj","name":"How To Master JavaScript Performance Optimization"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/the-anatomy-of-slow-code-reviews-a5rzgotoc","name":"The Anatomy of Slow Code Reviews"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/linux-understand-sudo-to-rule-your-server-twg2uofq0","name":"Linux: Understand sudo to Rule Your Server"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/devs-need-system-design-tools-not-diagramming-tools-8xgbuivw4","name":"Devs Need System Design Tools, not Diagramming Tools"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/install-the-webmin-gui-server-manager-on-alamalinux-1fnabkpd2","name":"Install the Webmin GUI Server Manager on AlamaLinux"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/4-api-security-best-practices-gwxgqreaj","name":"4 API Security Best Practices"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/5-creative-ways-developers-are-using-ai-opozjesqv","name":"5 Creative Ways Developers Are Using AI"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/poor-documentation-is-costly-here-s-how-to-fix-it-ll8wk9xig","name":"Poor Documentation Is Costly: Here’s How to Fix It"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/the-python-linter-ruff-is-a-win-for-open-source-and-rust-zz78esrym","name":"The Python Linter Ruff Is a Win for Open Source — and Rust"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/python-meets-javascript-wasm-with-the-magic-of-pythonmonkey-mieri8pnh","name":"Python Meets JavaScript, Wasm With the Magic of PythonMonkey"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/next-js-15-cache-rust-adds-to-ai-salaries-and-million-js-vpf9e4syz","name":"Next.js 15 Cache, Rust Adds to AI Salaries, and Million.js"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/how-to-create-a-python-executable-file-with-pyinstaller-katlgp5q6","name":"How to Create a Python Executable File With PyInstaller"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/you-ll-write-less-code-with-svelte-5-0-promises-rich-harris-b5s3vewjm","name":"You’ll Write Less Code With Svelte 5.0, Promises Rich Harris"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/how-to-test-how-much-memory-your-java-application-uses-7gi3it9tr","name":"How To Test How Much Memory Your Java Application Uses"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/develop-a-master-ai-agent-with-langgraph-in-python-dzr47an3y","name":"Develop a Master AI Agent With LangGraph in Python"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/zed-ported-its-text-editor-to-linux-and-it-s-pretty-special-zpfhmjmve","name":"Zed Ported Its Text Editor to Linux and It’s Pretty Special"},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/ansible-vs-salt-which-is-best-for-configuration-management--atuosynh5","name":"Ansible vs. Salt: Which Is Best for Configuration Management?"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/is-graphql-over-or-do-we-just-need-to-rethink-it--wpbmtleux","name":"Is GraphQL Over or Do We Just Need to Rethink It?"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/how-to-run-databases-in-kubernetes-7dgjjj4yl","name":"How To Run Databases in Kubernetes"},{"@type":"ListItem","position":21,"url":"https://daily.dev/posts/7-urgent-lessons-from-the-crowdstrike-disaster-0vkuqdtns","name":"7 Urgent Lessons from the CrowdStrike Disaster"},{"@type":"ListItem","position":22,"url":"https://daily.dev/posts/how-to-work-with-branches-in-git-and-github-2izvdvx3g","name":"How to Work With Branches in Git and GitHub"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"The New Stack","item":"https://daily.dev/sources/newstack"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/newstack/best-of"},{"@type":"ListItem","position":5,"name":"July 2024"}]}]}
```

