Page Objects: Making Your UI Tests Less Brittle

2025-09-15
Page Objects: Making Your UI Tests Less Brittle

Testing web pages requires interacting with elements, but directly manipulating HTML makes tests fragile. Page Objects solve this by encapsulating a page or fragment as an application-specific API. This allows interacting with elements without directly accessing HTML. The goal is to mimic user actions, providing a clean interface that hides underlying widgets. Text fields use string accessors, checkboxes booleans, and buttons action-oriented methods. Good Page Objects model the user's perspective, not the UI's internal structure, returning basic data types or other Page Objects. There's debate on including assertions within Page Objects. The author prefers keeping assertions in test scripts, avoiding bloated Page Objects and using assertion libraries to reduce redundancy. This pattern works across various UI technologies, useful not just for testing but also as a scripting interface for applications.

Read more
Development Page Objects

Tattoo Removal: The Elegant Agony of Picosecond Lasers

2025-05-08
Tattoo Removal: The Elegant Agony of Picosecond Lasers

Tattoo removal is no longer a nightmare! Today's picosecond laser technology is revolutionizing how we remove unwanted ink. These lasers shatter ink particles into tiny pieces, allowing the body's immune system to clear them. While the process isn't painless, multiple sessions can effectively fade or remove tattoos. Advances in technology and affordability are making tattoo removal commonplace, comparable to routine maintenance. This boom signals a potential shift in tattoo culture itself, questioning the permanence of body art.

Read more

Fray: A Concurrency Testing Tool for Java

2025-06-08
Fray: A Concurrency Testing Tool for Java

Fray is a powerful concurrency testing tool for Java designed to help developers identify and debug elusive race conditions that manifest as assertion violations, runtime exceptions, or deadlocks. Leveraging advanced techniques like probabilistic concurrency testing and partial order sampling, Fray offers controlled concurrency testing and deterministic replay for debugging specific thread interleavings. Easily integrated into existing testing frameworks like JUnit 5 (using annotations) and others, Fray also provides Gradle and Maven plugins for streamlined setup. Contributions are welcome!

Read more

Ladybird: A Novel Web Browser Built on Web Standards

2025-02-28
Ladybird: A Novel Web Browser Built on Web Standards

Ladybird is a truly independent web browser using a novel engine based on web standards. Currently in pre-alpha, it's intended for developers. Its multi-process architecture—with a main UI process, multiple WebContent renderers, an ImageDecoder, and a RequestServer—prioritizes robustness against malicious content. It runs on Linux, macOS, Windows (with WSL2), and many other *nix systems and leverages several core library components from SerenityOS. Developers are invited to join the Discord server for discussions and contributions.

Read more

Unicon Programming Language: An Extension and Enhancement of Icon

2024-12-28

Unicon is a powerful programming language that extends and improves upon the Icon programming language. It inherits many of Icon's strengths, such as concise code, powerful string processing capabilities, and goal-directed evaluation, while adding modern features like object-oriented programming, a POSIX layer, and networking capabilities. Unicon supports multiple programming paradigms, including imperative, procedural, concurrent, and object-oriented, and boasts a rich set of built-in functions and a powerful graphics library. This document details Unicon's syntax, semantics, features, and installation methods, and provides numerous code examples.

Read more
Development

Lua: An Underrated Programming Language

2024-12-26
Lua: An Underrated Programming Language

Lua, a concise and efficient embedded scripting language created in 1993, remains surprisingly underrated despite its strengths. This article highlights Lua's advantages: ease of learning and mastery, an excellent C API, multi-paradigm support, and exceptional embeddability. While widely used in games and embedded systems, the author also points out some unique aspects of Lua, such as its indexing conventions (starting at 1 but not mandatory), error handling, and nil-terminated arrays, which developers should be aware of. Overall, Lua is a powerful language deserving more recognition; its efficiency is evident in applications like Neovim plugins.

Read more

Danish Metal Detecting Hobbyists Unearth Ancient Treasures, Rewriting History

2025-06-21
Danish Metal Detecting Hobbyists Unearth Ancient Treasures, Rewriting History

A Danish engineer's casual metal detecting hobby led to an extraordinary discovery: a hoard of 1,500-year-old gold artifacts, including an amulet inscribed with "He is Odin's man." This inscription, the oldest known written mention of Odin, pushes back the known history of his worship by 150 years. Denmark's unique approach to metal detecting, allowing hobbyists to search and turn over finds, has revolutionized archaeological research, resulting in a wealth of discoveries far exceeding those of neighboring countries.

Read more

Serving 200M+ Requests/Day with a Modern CGI Setup

2025-07-06
Serving 200M+ Requests/Day with a Modern CGI Setup

Revisiting the 90s CGI technology, the author built a Go + SQLite CGI program on a 16-thread AMD 3700X, achieving over 200 million requests per day. This experiment challenges the long-held belief of CGI's inefficiency, highlighting that modern languages (Go, Rust) and powerful hardware make CGI surprisingly effective in multi-core environments. While not advocating widespread adoption, the author demonstrates the fascinating evolution of technology and the value of re-examining past assumptions.

Read more
Development

Devs, Please Care About UX!

2025-04-29
Devs, Please Care About UX!

The author recounts their experience of being unable to pay rent due to a bloated banking app, criticizing developers for prioritizing development speed over user experience. The article highlights how large app sizes, excessive code, and tracking scripts waste user resources and increase costs, ultimately harming users. The author urges developers to prioritize user experience, consider real-world use cases, and avoid sacrificing usability for the sake of perceived 'development velocity'.

Read more
Development mobile apps

Minecraft Gets a Gigantic, Blocky Britain

2025-04-15
Minecraft Gets a Gigantic, Blocky Britain

A massive Minecraft map of Britain is coming, featuring every county and a 15km buffer zone around each, resulting in over a billion blocks! Players can explore iconic landmarks, familiar towns and cities, rivers, beaches, and more. Creative mode allows for building, redesigning, and even creating minecart railways. Players can even map Britain themselves using the in-game mapping tools, recreating the work of the Ordnance Survey. Get ready to remake Britain, your way!

Read more
Game Map Britain

ArkFlow: A High-Performance Rust Stream Processing Engine

2025-03-14
ArkFlow: A High-Performance Rust Stream Processing Engine

ArkFlow is a high-performance stream processing engine built on Rust and Tokio. It supports multiple data sources like Kafka, MQTT, and HTTP, and offers various processors including SQL queries, JSON processing, and Protobuf encoding/decoding. Its modular design allows for easy extension, and configuration is managed via YAML files. Users can define inputs, pipelines, and outputs to handle diverse stream processing tasks, such as Kafka-to-Kafka data processing or generating and processing test data.

Read more
Development

Roame Hiring: Lead Full-Stack Engineer to Revolutionize Travel Booking with AI

2025-05-11
Roame Hiring: Lead Full-Stack Engineer to Revolutionize Travel Booking with AI

Roame, a flight search engine leveraging credit card points and miles, is seeking a Lead Full-Stack Engineer. Backed by top-tier investors, Roame empowers millions to maximize their points' value. The ideal candidate possesses 4+ years of experience, mastery of Next.js, Firebase, and Go, and a strong understanding of AI pipelines. The San Francisco-based role requires in-person work. Roame offers competitive salary, equity, benefits, and a culture emphasizing collaboration and rapid iteration.

Read more
Development Travel Booking

Nine-Day Milestone: Gene-Edited Pig Lung Transplanted into Human

2025-08-27
Nine-Day Milestone: Gene-Edited Pig Lung Transplanted into Human

A team from the First Affiliated Hospital of Guangzhou Medical University achieved a groundbreaking feat: successfully transplanting a genetically modified pig lung into a brain-dead human, maintaining function for nine days. While the experiment was ultimately terminated due to organ rejection, it represents a significant advancement in xenotransplantation. The focus wasn't on immediate success, but on observing the human immune response. The pig lung underwent six gene edits to minimize immune and inflammatory responses. Results highlighted challenges such as pulmonary edema and antibody-mediated rejection. Future research will focus on optimizing immunosuppression, refining gene editing, and ultimately achieving clinical translation.

Read more

TikTok Ban Fuels Mass Migration to Xiaohongshu

2025-01-19
TikTok Ban Fuels Mass Migration to Xiaohongshu

Facing a potential TikTok ban in the US, a wave of American users are migrating to the Chinese social media platform Xiaohongshu, creating an unusual surge in US-China online interaction. These self-proclaimed "TikTok refugees" are sharing their lives and engaging with Chinese users, fostering a unique cross-cultural exchange. Xiaohongshu's welcoming atmosphere and openness have provided fertile ground for this unexpected migration, creating new opportunities for understanding and communication between users from both countries.

Read more

Reviving LISP 1.5: A C and Odin Implementation

2025-09-03
Reviving LISP 1.5: A C and Odin Implementation

This project recreates the core functionality of the 1962 LISP 1.5 interpreter in both C and Odin, boasting less than 500 lines of code (around 600 for the Odin version). It features a semi-space copying garbage collector based on Cheney's algorithm and limited tail-call optimization. While simplifying error handling and thread safety, the project successfully executes test programs, demonstrating the elegance and conciseness of LISP.

Read more
Development

Hans Christian Andersen: A Life Less Ordinary

2025-07-31
Hans Christian Andersen: A Life Less Ordinary

This article delves into the extraordinary life of Hans Christian Andersen, the celebrated author of beloved fairy tales. Born into poverty and marked by unconventional appearance, Andersen faced relentless ridicule, yet his talent and perseverance propelled him to become a literary icon across Europe. From early forays into acting and poetry to his eventual mastery of the fairy tale form, Andersen's journey reflects the imaginative power and profound understanding of life found within his stories. His life, much like his tales, is a captivating blend of drama and inspiration.

Read more

OSI Board Election Roiled by Open Source AI Definition Debate

2025-03-08
OSI Board Election Roiled by Open Source AI Definition Debate

The Open Source Initiative's (OSI) 2025 board election is mired in controversy, sparked by its open source AI definition (OSAID) released last October. The rejection of candidate Luke Faraone for allegedly missing a deadline has ignited debate about OSI's communication and process transparency. Beyond the procedural issues, the OSAID itself is facing strong opposition from key players in the open source community, with prominent figures like Richard Fontana and Bradley Kuhn advocating for a 5-10 year delay in formalizing an open source AI definition. The election proceeds, leaving the future of the OSAID uncertain.

Read more
Development Board Election

Modeling API Rate Limits as Diophantine Inequalities

2025-06-30

This article explores a mathematical approach, specifically using Diophantine inequalities, to solve API rate limiting problems. The author uses a scenario with a 10-requests-per-hour limit and three retry attempts per task as an example, demonstrating how to transform the task scheduling problem into an integer feasibility problem. By analyzing the task retry pattern and time windows, the author establishes an inequality model and uses Go to write a program that determines whether a new task can be safely scheduled without exceeding the rate limit. The article also mentions optimizing the algorithm to reduce time complexity from O(n^2) to O(n*log(n)).

Read more

Modularizing a Monolith with Elixir's Hot Code Reloading

2025-07-12

Alzo, an Elixir monolith deployed as one instance per client, leverages Elixir and Erlang VM's hot code loading for client-specific features. This avoids microservices' cascading failures and complex testing. Client-specific LiveView apps reside in `/alzo/lib/clients/apps`, dynamically loaded at startup. Client code is removed during the build process, preventing the main app from depending on runtime apps. Hot code upgrades are avoided for simplicity. This approach provides efficient development, maintainability, scalability, and the ability to easily refactor common functionalities from dynamic apps into the main codebase.

Read more

Protocol Society: Power, Algorithms, and the Future of Humanity

2025-05-04
Protocol Society: Power, Algorithms, and the Future of Humanity

This essay explores a new model of power in the internet age: "Protocol Society." By contrasting two narratives—one about the internet breaking down traditional power structures, the other about global cultural convergence—the author reveals a shift from centralized to decentralized, algorithmic power. Protocols, not centralized authorities, become key shapers of society and individual behavior. The essay delves into the mechanisms of protocol operation, its opportunities and challenges, and the resulting new political reality, exploring how to maintain individual autonomy and social stability within a protocol society.

Read more

BloomSearch: A Keyword Search Engine for Massive Datasets using Hierarchical Bloom Filters

2025-07-16
BloomSearch: A Keyword Search Engine for Massive Datasets using Hierarchical Bloom Filters

BloomSearch is a high-performance keyword search engine designed for massive datasets. Leveraging hierarchical Bloom filters and pluggable storage interfaces, it achieves extremely low memory usage and fast cold-start searches. It supports field searches, token searches, and field:token combinations with AND/OR operators. BloomSearch also features partitioning, min-max indexes, and TTL for enhanced query performance and data management. Its scalable architecture handles unbounded ingest and query throughput, making it ideal for logs, JSON documents, and high-cardinality keyword search.

Read more

Synthesizing OOP and Functional Design for Reusability

2025-09-09

This 1998 ECOOP paper tackles the challenge of extending both tools and data types in evolving programs by combining the strengths of object-oriented and functional programming. Traditional approaches struggle to support both: functional programming excels at adding tools, while OOP excels at adding new tools or extending datasets, but not both simultaneously. The paper proposes a composite design pattern that synthesizes the best of both, suggesting new linguistic features for class-based languages to achieve extensibility without modifying existing code.

Read more
Development code reuse

Solidis: A High-Performance, SOLID-Designed Redis RESP Client

2025-05-16
Solidis: A High-Performance, SOLID-Designed Redis RESP Client

Solidis is a modern RESP client built with SOLID principles, zero dependencies, and enterprise-grade performance in mind. It supports both RESP2 and RESP3 protocols and is optimized for modern JavaScript/TypeScript applications. Offering both a basic client for minimal bundle size and a featured client with pre-loaded commands, Solidis boasts features like transactions, pipelining, pub/sub, auto-reconnection, robust type safety, and extensibility. It's a powerful and efficient tool for interacting with Redis.

Read more
Development

AI Boosts Efficiency for US Intelligence Agencies

2025-06-10
AI Boosts Efficiency for US Intelligence Agencies

Director of National Intelligence, Tulsi Gabbard, announced that AI is significantly accelerating the work of US intelligence agencies. AI is being used for tasks like human resource management and pre-declassification document scanning, drastically reducing processing time, as seen in the recent declassification of Kennedy assassination-related files. Gabbard aims to leverage private sector AI technologies to improve efficiency, allowing intelligence officers to focus on uniquely human tasks.

Read more

AI Coding: The Coming Flood of Cheap, Low-Quality Software

2025-08-01

The author argues that AI's impact on programming will mirror fast fashion's effect on the clothing industry: a flood of cheap, low-quality products and excessive waste. While acknowledging AI's usefulness in prototyping and debugging, the author highlights the inherent flaws in LLM-generated code, including lack of optimization, security vulnerabilities, and inability to handle complexity. This will lead to a market saturated with low-quality software, comparable to the environmental problems caused by fast fashion. The author calls for standardized code quality metrics and professional certifications to mitigate the potential disaster, emphasizing that despite AI assistance, developers remain ultimately accountable.

Read more
Development

New API: Full-Stack Backends for Agents

2025-07-17
New API: Full-Stack Backends for Agents

Software engineering enters a new phase with the rise of AI agents. This post announces a new API providing full-stack backend services for agents, including databases, sync engines, authentication, file storage, and presence. Designed to simplify app development, the API leverages built-in abstractions, efficient hosting, and data exposure for improved productivity. Its multi-tenant architecture enables rapid creation of numerous databases, reducing costs, and supports various isolation strategies to optimize resource utilization. The ultimate goal is to empower both developers and AI agents to build and deploy applications more easily, with database-like abstractions enabling app extensibility.

Read more
Development full-stack backend

arXivLabs: Experimenting with Community Collaboration

2025-05-17
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a framework enabling collaborators to develop and share new arXiv features directly on the website. Individuals and organizations involved embrace arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only partners with those who share them. Got an idea for a project that will benefit the arXiv community? Learn more about arXivLabs.

Read more
Development

Falsehoods Programmers Believe About Null Pointers

2025-02-01
Falsehoods Programmers Believe About Null Pointers

This article debunks common misconceptions about null pointers. It explores fallacies ranging from the simple (dereferencing a null pointer doesn't always crash the program immediately) to the bizarre (the null pointer's address isn't always 0). The author argues against relying on compiler optimizations or hardware specifics, highlighting the dangers of assuming consistent behavior across platforms. The article emphasizes that C should be treated as a higher-level language, not just "portable assembler," and encourages leveraging modern languages' memory safety features for more robust and portable code.

Read more
Development null pointer

No-Build Web App: Little Webby Press Reborn

2025-06-05

The author rewrote his ebook generator, Little Webby Press, to eliminate the build process. The new version ditches Svelte, BrowserFS, and other build tools and dependencies, opting instead for Mithril and Pico CSS, cleverly using importMap to load dependencies from JsDelivr. This resulted in cleaner code and a massive performance boost; generating the ebook and website for Moby Dick went from 4.7 seconds to under 0.5 seconds. The author finds this "no-build" approach more enjoyable and plans to focus on such web app development in the future.

Read more
Development no-build

The Age of the Business Idiot: Tech Giants and the Illusion of AI Progress

2025-05-21
The Age of the Business Idiot: Tech Giants and the Illusion of AI Progress

This article offers a scathing critique of the prevalence of 'Business Idiots' in the tech industry. The author argues that many tech executives lack a deep understanding of their own businesses and technologies, blindly chasing short-term gains and market hype, leading to the overuse and waste of resources on technologies like AI. They treat AI as a panacea for all problems, rather than focusing on customer needs and product value. This phenomenon stems from decades of neoliberal thinking and an overemphasis on shareholder value, resulting in management detaching from reality, fixated on superficial metrics while ignoring product quality and employee well-being. The article uses numerous examples, including tech giants like Microsoft, Google, and Meta, and failed startups, to demonstrate the pervasiveness and dangers of this phenomenon. Ultimately, the author calls for a disruption of this distorted business model, advocating for a renewed focus on technological value, product quality, and employee rights.

Read more
Tech
1 2 333 334 335 337 339 340 341 596 597