admin

aposd-vs-clean-code/README.md at Main · Johnousterhout/aposd-vs-clean-code

Discussion between Robert “Uncle Bob” Martin and John Ousterhout on software design principles in “aposd-vs-clean-code.” Key disagreements focus on method length, comments, and test-driven development. John emphasizes reducing complexity for easier understanding, while Bob champions small functions. They debate the risks of over-decomposition, balancing function size with clarity. They analyze the PrimeGenerator class for its design flaws, particularly method entanglement. Both find the other's approach lacking but agree on the challenge of maintaining code clarity amidst complexity. Ultimately, they encourage a careful balance between decomposition and comprehension in software design.

https://github.com/johnousterhout/aposd-vs-clean-code/blob/main/README.md

Why Are QR Codes With Capital Letters Smaller Than QR Codes With Lower-case Letters?

QR codes with capital letters are smaller than those with lowercase letters because uppercase codes use Alphanumeric mode, which is more efficient, requiring fewer bits per character (11 bits for two characters) compared to Byte mode used by lowercase (8 bits per character). For the same URL, this results in less data, hence a smaller QR code.

https://shkspr.mobi/blog/2025/02/why-are-qr-codes-with-capital-letters-smaller-than-qr-codes-with-lower-case-letters/

Get Coding Help From Gemini Code Assist — Now for Free

Gemini Code Assist offers free AI-powered coding help, enabling developers to access up to 180,000 code completions monthly without restrictive limits. It supports all programming languages and enhances coding efficiency by providing insights for code generation, debugging, and reviews directly within IDEs like Visual Studio Code and JetBrains. The GitHub extension facilitates automated code reviews, suggesting improvements and adhering to custom styles. Sign up requires only a Gmail account, with no credit card needed.

https://blog.google/technology/developers/gemini-code-assist-free/

Bookmarklets (and Custom URL Schemes) Are Criminally Underrated

Bookmarklets allow users to add custom JavaScript actions to their browsers, enabling personalized functionality like sending page URLs to external applications. They can interact dynamically with the current DOM and even launch local apps via custom URL schemes. While bookmarklets are powerful and versatile, they remain underutilized. Although setting them up can be cumbersome, the potential for seamless data flow between web browsers and local applications is significant. However, caution is advised against using untrusted sources for bookmarklets due to security risks.

https://silly.business/blog/bookmarklets-and-custom-url-schemes-are-criminally-underrated/

AArch64/ARM64 Assembly Tutorial

Vega's ARMv8 AArch64 Assembly Tutorial: Aimed at beginners, this comprehensive guide teaches ARMv8 AArch64 Assembly language, assuming no prior experience with older ARM versions. Key chapters cover installation, basic instructions, memory navigation, and advanced topics. Requires Linux and basic terminal knowledge. Discord contact for errors.

https://mariokartwii.com/armv8/

Can AI Coding Systems Earn $1 Million As Freelancers?

OpenAI researchers tested AI coding systems against real freelance software engineering tasks that humans earned $1 million to solve. They created the SWE-Lancer benchmark, sourcing 1,488 tasks from Expensify and Upwork. AI models like Claude 3.5 Sonnet and GPT-4o were evaluated on their performance. Results showed AI could earn over $400,000 but struggled with complex coding tasks, highlighting limitations in understanding and refining solutions. While AI can't replace human engineers yet, it may automate routine coding, allowing developers to focus on higher-level problems.

https://www.discovermagazine.com/technology/can-ai-coding-systems-earn-usd1-million-as-freelancers

How to Speed up Code Reviews

TLDR: To speed up code reviews, leverage tools and collaborative practices: adhere to formatting guidelines, write clear comments, ensure unit tests and documentation are in place. Use version control and automated review tools, set clear objectives, encourage peer involvement, conduct efficient meetings with time limits, utilize checklists, and focus on constructive feedback. Continuously improve processes through metrics and retrospectives for better collaboration and efficiency.

https://leaddev.com/velocity/how-speed-code-reviews

Kaneo

Kaneo is an open-source, self-hosted project management platform designed for simplicity and efficiency. It offers features like visual task management, team collaboration, project timelines, automation, and data privacy. Licensed under MIT, it allows full control over data and extensibility. Join the community on GitHub and Discord for support and collaboration.

https://kaneo.app/

How AI Generated Code Compounds Technical Debt

AI-generated code is rapidly increasing technical debt due to rising code duplication and declining quality. GitClear's research reveals an 8-fold rise in duplicated code and a decrease in code reuse, leading to redundant systems. Despite perceived productivity gains, developers are spending more time debugging and addressing security issues. Long-term, this unchecked AI code generation risks overwhelming maintainability, increasing operational costs, and complicating testing due to duplicated code. Emphasis on long-term sustainability is crucial to prevent indefinite maintenance burdens as the trend persists.

https://leaddev.com/software-quality/how-ai-generated-code-accelerates-technical-debt

Practical Alloy

Practical Alloy is a guide to formal software design using the Alloy modeling language, focusing on developing models for software systems to explore design alternatives and validate requirements. It covers structural and behavioral modeling, with practical examples, making it suitable for both simple applications and complex distributed protocols.

https://practicalalloy.github.io/

Why Test-First Development Is So Damn Hard

Test-first development is challenging because it requires deep thinking and planning before coding, which many programmers avoid to quickly ship products. Emphasizing speed over quality leads to poor development practices, like Test-Last Development, where testing is an afterthought. This approach may deliver immediate results and satisfy management but undermines long-term product reliability. Ultimately, the article critiques the industry's focus on short-term gains at the expense of testing and quality assurance.

https://jarosz.dev/atomicessay/why-test-first-development-is-so-damn-hard/

Mastra.ai

Mastra: A TypeScript AI framework for building and managing AI agents. Users can prototype and productionize AI features easily, leveraging modern JavaScript stacks. Offers functionalities like agent orchestration, memory management, and workflows to facilitate complex AI operations. Popular among developers, with numerous projects showcasing its versatility in AI-related development.

https://mastra.ai/

When Imperfect Systems Are Good, Actually: Bluesky’s Lossy Timelines

Imperfect systems can be beneficial in tech design, exemplified by Bluesky's timeline architecture. Achieving perfect consistency, availability, and low latency simultaneously is infeasible. Bluesky's “lossy timelines” decrease write consistency to enhance performance, addressing challenges posed by high user activity that can create “hot shards.” By introducing a mechanism that probabilistically limits writes based on user follow counts, Bluesky has improved scalability and reduced the time needed for timeline updates from minutes to seconds, demonstrating that embracing imperfection can enhance system throughput.

https://jazco.dev/2025/02/19/imperfection/

Using the Step and Pattern Attributes to Make Number Inputs More Useful

TLDR: Use the step attribute in HTML to control numeric increments, allowing customization of decimal precision. The pattern attribute can enforce specific formats but lacks built-in UI controls. step is ideal for numerical inputs, while pattern is better for complex text validation. Both can show validation states in CSS.

https://piccalil.li/blog/using-the-step-and-pattern-attributes-to-make-number-inputs-more-useful/

Scroll to Top