1. UK’s hardware talent is being wasted
Total comment counts : 80
Summary
The article by Josef Chen discusses the underutilization of engineering talent in the UK, particularly in hardware engineering, despite the presence of world-class graduates from universities like Imperial, Oxford, and Cambridge. Here are the key points:
Salary Disparity: UK hardware engineers earn significantly less than their Silicon Valley counterparts, with starting salaries in London being much lower than in the US tech hubs.
Talent Misallocation: Many talented engineers end up in consulting, finance, or mundane engineering roles rather than in innovative hardware projects due to better pay or lack of opportunities, leading to a national waste of human capital.
Root Causes:
- Geographical Constraints: Hardware engineering requires physical presence, limiting mobility compared to software jobs.
- Investment: European venture capital focuses on software, neglecting hardware innovation.
- Industrial Stagnation: Traditional firms fail to innovate or offer competitive compensation, exacerbating brain drain.
Consequences:
- Innovation Stagnation: The UK misses out on creating tech giants like ARM or Tesla.
- Economic Impact: The lack of hardware innovation leads to fewer ancillary businesses and economic growth.
- National Security: Losing technological edge in critical industries.
Myth Busting: Chen debunks myths about London’s living costs, the UK’s market size, and the supposed riskiness of hardware over software, highlighting successful UK hardware companies and advancements in hardware development speed.
Opportunity for UK Hardware Startups: The article suggests that ambitious startups could tap into the local, highly skilled but underutilized talent pool, which is less accessible to global competitors due to the need for physical presence.
Call to Action: Chen calls on VCs to invest in hardware, founders to stay and innovate in the UK, and engineers to leverage their skills in creating significant hardware enterprises rather than moving into less impactful roles.
The overarching message is an urgent call for a shift in focus towards hardware innovation in the UK to harness the potential of its engineering talent, warning that the window of opportunity for this shift is closing.
Top 1 Comment Summary
The article discusses the challenges faced by engineering graduates and small businesses in the UK due to the country’s restrictive planning laws:
Low Salaries and Career Shifts: Engineering graduates often start with salaries around £25,000, leading many to move into better-compensated fields like consulting or finance.
Central Planning Issues: Unlike most sectors operating in a free market, the construction industry is heavily regulated by local councils, which often block development. This creates a scarcity of physical space for industries requiring labs or offices.
Personal Experience: The author recounts their first job in a small engineering firm in Cambridge, where lab space was prohibitively expensive and poorly located due to restrictions on building new facilities.
Economic Impact: This central planning stifles innovation and growth in industries needing physical expansion, as local councils can block necessary development.
Proposed Solution: The author suggests a politically challenging solution: reforming planning laws to allow development based on basic design codes, which could alleviate these issues but is unlikely to be implemented due to political risks.
In summary, the article critiques the British planning system’s impact on economic sectors needing physical development, using the author’s personal experience to illustrate broader economic and career implications.
Top 2 Comment Summary
The article discusses the challenges of launching a hardware startup compared to a software startup, highlighting that these difficulties are global rather than specific to the UK or the US. Here are the key points:
Higher Bar for Hardware Startups: The author argues that starting a hardware startup is inherently more challenging due to higher initial costs, longer development times, and more complex market entry strategies.
Personal Experience: The writer, an Australian with connections in Silicon Valley and a YC alum, shares their struggles in bootstrapping a hardware startup. Despite market validation, investor interest wanes when actual funding needs and market entry are discussed.
Comparison with Software Startups: Software startups, particularly SaaS, can show early revenue and growth, making them more attractive to investors. Hardware startups, by contrast, often appear less successful due to the nature of their development cycle.
Lack of Advice and Experience: The scarcity of successful hardware startups means there’s less shared knowledge and fewer role models for new entrepreneurs to learn from.
Strategy Shift: The author suggests that one viable approach might be to first succeed with a software startup and then transition into hardware, though this too requires convincing investors of the value in the shift.
Investor Preferences: The tech industry’s recent focus on SaaS has led investors to prefer these types of ventures, with only a few exceptions like Groq, which required founders with significant credentials and connections.
In summary, while hardware startups face significant barriers to entry and growth due to their inherent complexities, the author believes that starting with software might be a necessary step to eventually succeed in hardware, given the current investor climate.
2. DeepSeek-R1
Total comment counts : 52
Summary
The article discusses the introduction of two new AI models by DeepSeek: DeepSeek-R1-Zero and DeepSeek-R1. Here’s a summary:
DeepSeek-R1-Zero: This model was developed using large-scale reinforcement learning (RL) without initial supervised fine-tuning (SFT). It exhibited advanced reasoning capabilities, including self-verification and the generation of long chain-of-thoughts (CoTs). However, it faced issues like endless repetition, poor readability, and language mixing.
DeepSeek-R1: To overcome the challenges faced by DeepSeek-R1-Zero, DeepSeek-R1 was developed by incorporating a ‘cold-start’ data phase before RL. This model performs comparably to OpenAI-o1 in various reasoning, math, and coding tasks. DeepSeek-R1 uses a pipeline that includes two RL stages for enhancing reasoning and aligning with human preferences, plus two SFT stages for initial model capabilities.
Open Sourcing and Distillation: Both models, along with six dense models distilled from DeepSeek-R1 based on Llama and Qwen architectures, have been open-sourced. Notably, DeepSeek-R1-Distill-Qwen-32B outperforms OpenAI-o1-mini in several benchmarks, setting new benchmarks for dense models.
Model Usage and Licensing: These models support commercial use, modifications, and further training. They can be run with specific configurations like temperature settings to avoid common issues like endless repetition. DeepSeek provides an API and a website for interacting with the models, and detailed instructions are available for running the models locally.
Future Directions: The article suggests that this approach of directly applying RL without SFT could lead to future advancements in AI model reasoning capabilities, emphasizing the potential benefits for the research community and industry.
Top 1 Comment Summary
The article discusses the author’s experience experimenting with a quantized version of the Llama 3 model, specifically the DeepSeek-R1-Distill-Llama-8B-GGUF from Hugging Face. Here are the key points:
Model Details: The author is using an 8.54GB file of the model, which is a quantized version designed for efficiency.
Usage:
- The model is run using
Ollama
, a tool for running large language models. - Commands are provided for how to load and interact with the model directly or through an LLM tool with an
llm-ollama
plugin. - An example is given where the model is prompted to generate a joke about a pelican and a walrus running a tea room together, which the author finds amusingly poor but notes the model’s “thinking” process is interesting.
- The model is run using
Integration: The author has set an alias for the model to simplify command inputs.
Further Reading: The author has documented these experiments on their blog, providing more detailed insights into their exploration of this AI model.
Top 2 Comment Summary
The article discusses the development and challenges associated with AI models, specifically focusing on DeepSeek-R1-Zero and its successor, DeepSeek-R1. Here are the key points:
DeepSeek-R1-Zero faced issues like endless repetition, poor readability, and language mixing, which negatively impacted user experience.
DeepSeek-R1 has been introduced to tackle these problems by incorporating cold-start data before reinforcement learning (RL), aiming to enhance reasoning performance.
Experiments comparing QwQ-32B-Preview with OpenAI o1 revealed:
- QwQ suffered from repetitive loops, significantly hurting user interaction.
- o1 outperformed by employing more effective search strategies and straightforward responses without overthinking the request.
There’s anticipation about how DeepSeek-R1 will perform in terms of search strategies and reasoning, especially with the improvements made.
The availability of DeepSeek-R1 under an MIT license is highlighted as a significant advantage, allowing broader access for evaluation of advanced reasoning models.
3. Reverse Engineering Bambu Connect
Total comment counts : 30
Summary
The article discusses a user-submitted guide on the wiki that explains how to extract private keys from the Bambu Connect Electron App. Here are the key points:
Licensing and Security: All submissions to the wiki are under the CC 4.0 BY-SA license. Bambu Connect is criticized for employing “Security Through Obscurity,” making it inherently insecure.
Purpose of the Guide: The guide aims to show how easily one can extract the private keys used for communication with Bambu devices, thereby questioning the security claims made by Bambu Lab regarding Bambu Connect.
Process to Extract Keys: The guide outlines steps to retrieve and decode the private keys from the app’s main.js file, involving several decryption steps and the use of a Python script to simplify the process.
Disclaimer: The guide is not fully validated, and its inclusion in the wiki is under consideration. Users are directed to a Discord server for further discussion or appeals if the notice is believed to be misplaced.
Content Notice: The guide does not adhere to the wiki’s usual content guidelines about company relations to consumer rights but focuses on providing users with more control over their purchases.
Top 1 Comment Summary
The article discusses an issue with an IP camera (IPCam) that continues to record video even when it appears to be disabled. In response, there is a suggestion to print scenes from the Tiananmen Square Tank Man incident, possibly as a form of protest or to test the camera’s surveillance capabilities.
Top 2 Comment Summary
The article discusses a customer’s frustration with Bambu, a company selling 3D printers. The customer bought a Bambu printer during a Black Friday sale, expecting it to be open and hackable. However, Bambu is now attempting to restrict the use of the printer, requiring users to utilize their proprietary software and DRM (Digital Rights Management) to operate it. This has led to a backlash, with the customer feeling misled by the company’s initial promises of openness. Additionally, there is a reference to a related hacking event detailed in a Hackaday article, indicating that this issue might escalate into a significant conflict.
4. Bunkers in Albania
Total comment counts : 17
Summary
The article discusses the widespread construction of military bunkers in Albania under the leadership of Enver Hoxha from the 1960s to the 1980s. Here are the key points:
Bunkerization: Over 750,000 bunkers were built across Albania, averaging 5.7 bunkers per square kilometer, as part of Hoxha’s defensive strategy against potential invasions from Yugoslavia, NATO, or the Warsaw Pact.
Historical Context: Hoxha’s regime was characterized by extreme isolation, hostility towards neighbors, and ideological alignment with Stalinism and later Maoism. Albania withdrew from international alliances and pursued a policy of self-reliance and paranoia.
Economic Impact: The construction of bunkers drained resources which could have been used for improving infrastructure and housing, exacerbating Albania’s economic stagnation.
Military Strategy: The bunkers were part of a “people’s war” doctrine, focusing on guerrilla warfare and defense in every part of the country, even though they were never used for their intended military purpose during Hoxha’s rule.
Post-Hoxha Era: After the fall of communism in 1992, most bunkers were abandoned, though some have been repurposed for various civilian uses. They saw minor use during the Insurrection of 1997 and the Kosovo War.
Cultural and Political Legacy: The bunkers symbolize the extreme measures taken by Hoxha’s regime, reflecting both the paranoia of the leadership and the isolationist policies of Albania during that period.
The article provides a detailed look at how Hoxha’s bunkerization policy was a manifestation of his political ideology and the lasting physical reminders of his rule on the Albanian landscape.
Top 1 Comment Summary
The article discusses the author’s discovery of Enver Hoxha, a dictator, through the Real Dictators podcast. The author reflects on how authoritarian regimes can unexpectedly take control, highlighting concerns about complacency and the underestimation by the public that such drastic changes “can’t happen here.” The author ponders how quickly one’s life can change under such oppressive governance.
Top 2 Comment Summary
The article discusses the author’s experiences with the widespread presence of bunkers in Albania, a result of the country’s past military strategies. The author, who traveled frequently to Albania for work until 2010, notes that these bunkers are found everywhere, even in remote areas, which could be useful for hikers. In urban settings, some larger bunkers have been repurposed creatively; for example, one was turned into a beach cafe. However, the majority of these bunkers are small, mostly subterranean, and challenging to repurpose due to their size and design.
5. How do interruptions impact different software engineering activities
Total comment counts : 9
Summary
Article Summary:
The article from “Research-Driven Engineering Leadership” explores how interruptions impact software engineers’ productivity and stress levels. Here are the key points:
Interruptions and Engineering Tasks: Interruptions disrupt the deep focus required for tasks like coding, code comprehension, and code review. Researchers from Duke and Vanderbilt Universities conducted a study where engineers performed these tasks under various interruption scenarios.
Findings on Interruptions:
- Productivity: Interruptions generally decrease productivity, but the impact varies with the task’s complexity and the nature of the interruption. For instance, simpler tasks are more affected, and in-person interruptions combined with on-screen notifications significantly increase the time needed for code review.
- Stress: Code writing interruptions lead to higher stress compared to other tasks. Interestingly, in-person interruptions, despite being perceived as more stressful, showed lower physiological stress responses than digital interruptions.
Perception vs. Physiological Data: There’s often a disconnect between how engineers perceive stress from interruptions and their physiological responses, suggesting that perceived stress might be more influential on behavior and productivity.
Recommendations for Leaders:
- Minimize High-Dominance Interruptions: Leaders should reduce urgent notifications from authoritative figures during critical work periods, opting for scheduled check-ins.
- Protect Code Writing Time: Implement “Do Not Disturb” periods to shield engineers from interruptions during code writing, which is highly stress-inducing.
- Measurement for Improvement: Use both survey data and telemetry to gauge the impact of interruptions, establishing baselines and measuring improvements over time.
The article concludes by suggesting that understanding and managing interruptions can lead to a more productive and less stressful work environment for software engineers.
Top 1 Comment Summary
The article discusses the negative impact of interruptions on productivity and creativity, particularly focusing on the role of middle managers in mitigating such distractions. The author shares a personal experience from a small company where the CEO’s constant meddling, through both in-person interruptions and lengthy, disorganized Slack messages, significantly disrupted workflow. Initially, the author physically reorganized the team’s workspace to minimize these interruptions. However, with the shift to digital distractions, the author had to manage the team’s response to the CEO’s demands, prioritizing tasks and protecting work time. The CEO’s vacations highlighted the productivity boost when such interruptions ceased, underscoring the detrimental effect of constant distractions. The experience taught the author valuable lessons on managing and reducing workplace interruptions.
Top 2 Comment Summary
The article discusses the enduring relevance of the book “Peopleware” by Tom DeMarco and Timothy Lister. Originally published about 40 years ago, it is still considered the foremost quantitative study on how the work environment affects developer productivity. Despite the significant changes in technology and work practices since its publication, the book’s insights remain applicable. The key point is that while the context has changed, the fundamental data on human behavior provided by “Peopleware” can be adapted to modern settings more reliably than making assumptions based on contemporary guesses.
6. JTAG ‘Hacking’ the Original Xbox in 2023
Total comment counts : 10
Summary
The article discusses the hacking history of Microsoft’s original Xbox, released in November 2001. Here are the key points:
Hardware Overview: The Xbox was built around an Intel Pentium III CPU and an NVIDIA GPU, designed to be an accessible platform for PC game developers.
Security Measures: Microsoft implemented security through a “secret” 512 byte bootrom within the NVIDIA MCPX Southbridge, aiming to establish a secure chain of trust.
Early Hacking: Within months of its release, Andrew “bunnie” Huang dumped this bootrom, opening up the console for further research. This was achieved by using an FPGA to intercept data on the HyperTransport bus.
JTAG Challenge: The article mentions early discussions on using Intel’s CPU JTAG for debugging, which was not pursued due to hardware modifications being costly and complex, with JTAG instructions being proprietary.
Homebrew Ecosystem: Over time, numerous methods were developed to hack the Xbox, reducing the need for complex hardware attacks like JTAG debugging.
Current Interest: Despite the passage of time, there’s still interest in hardware debugging the Xbox CPU for historical preservation and study, although no open-source solutions exist for Intel’s proprietary JTAG instructions.
Debugging Equipment: The article notes that the best debuggers for the Pentium III from that era were made by companies like American Arium and Applied Microsystems, now challenging to find or use.
Overall, the article reflects on the Xbox as a significant platform for learning about computer security and systems engineering, highlighting both its initial security measures and the community’s efforts to bypass them.
Top 1 Comment Summary
The article discusses an observation from an XBOX presentation where an older version of the hidden ROM was found in the Flash ROM. This discovery provided significant insights into the console’s boot sequence, despite not matching the final release version.
Top 2 Comment Summary
The article or post you’ve linked discusses the topic of “JTAG ‘Hacking’ the Original Xbox in 2023,” which has been reposted several times, garnering more comments each time. JTAG (Joint Test Action Group) refers to a common hardware interface used for testing and debugging electronic circuits. In the context of gaming consoles like the original Xbox, JTAG hacking typically involves using this interface to unlock or modify the console’s software, often to run custom firmware or unauthorized games. The discussion likely revolves around techniques, ethical considerations, the legal status of such modifications, and possibly the nostalgia or technical challenge of modifying an old gaming system in the modern era.
7. Rhai: An embedded scripting language for Rust
Total comment counts : 14
Summary
The article discusses Rhai, which is an embedded scripting language designed for the Rust programming language. Here are the key points:
- Purpose: Rhai provides a safe and straightforward method to integrate scripting capabilities into Rust applications.
- Documentation and Resources: The documentation includes qualifiers, sample scripts in a ‘scripts’ subdirectory, and a detailed guide called “The Rhai Book.”
- Examples: A standard Fibonacci script example is provided to demonstrate its scripting capabilities.
- Tools: There’s an online playground with a syntax-highlighting editor that uses WebAssembly, allowing direct script evaluation.
- Licensing: Rhai is dual-licensed under Apache-2.0 and MIT licenses, with contributions also falling under these licenses unless stated otherwise.
Top 1 Comment Summary
The article discusses the use of Rhai, an embedded scripting language, within Glicol for real-time audio synthesis at the sample level, noting that its performance is acceptable despite the computational demands of real-time audio. The author highlights Rhai’s advantages, such as its good documentation and an interactive playground, which make it stand out among other Rust embeddable scripting languages. The article also mentions a survey on Rust embeddable scripting languages for further reference and points out that Koto Lang is another promising scripting language in this domain.
Top 2 Comment Summary
The article questions the preference for using a new programming language or tool over Lua for hobby projects. The author points out that Lua offers advantages such as speed, ease of embedding, and a larger ecosystem, suggesting that these practical benefits might outweigh other considerations like memory safety or the novelty of using Rust, which are assumed but not seen as compelling reasons to switch.
8. TypeScript enums: use cases and alternatives
Total comment counts : 20
Summary
Summary of “TypeScript Enums” Blog Post:
The blog post explores TypeScript enums in depth:
Enum Basics: Enums in TypeScript are both objects mapping keys to values and types containing only those values. They support string and number values, but with different behaviors (e.g., string enums are stricter about type matching than number enums).
Exhaustiveness Checking: TypeScript can perform exhaustiveness checks to ensure all enum cases are handled in switch statements or if-else chains, using the
never
type to detect unhandled cases.Enum Enumeration: While TypeScript enums can be used to define constants, enumerating them directly is tricky due to how they are compiled to JavaScript, especially with number members which add reverse mappings.
Use Cases:
- Constants Namespace: Enums can serve as a namespace for constants, particularly useful when constants might be combined (e.g., bitwise operations). An object literal with
__proto__
set tonull
is suggested as a good alternative for this use case. - Type Safety: Enums provide type safety by restricting variable values to those defined in the enum.
- Constants Namespace: Enums can serve as a namespace for constants, particularly useful when constants might be combined (e.g., bitwise operations). An object literal with
Limitations and Alternatives:
- Enums work well for simple value sets and type safety but fall short for more complex scenarios like runtime enumeration due to compilation to JavaScript.
- For more flexible or dynamic scenarios, alternative patterns or even plain objects might be preferable.
The post concludes by discussing the suitability of TypeScript enums for various programming needs, highlighting their strengths in type safety and constants management, while also pointing out limitations in dynamic enumeration and suggesting workarounds or alternative approaches.
Top 1 Comment Summary
The article discusses the evolution of TypeScript and critiques the use of enums within the language:
- Historical Context: Enums were introduced early in TypeScript’s development when the language was still defining its objectives and features.
- Newer Features: Over time, TypeScript introduced more modern features like string literals, union types (e.g.,
type Status = "Active" | "Inactive"
), andas const
assertions, which provide similar functionality to enums but with greater flexibility and alignment with JavaScript’s behavior. - Shift in Philosophy: TypeScript has shifted towards only generating runtime code for features that are on a standards track, which puts enums at odds with current design principles.
- Deprecation Consideration: Given the availability of alternatives and TypeScript’s current direction, the author suggests that enums might as well be considered deprecated, although they are not officially documented as such. This raises questions about why TypeScript still supports enums without any indication of their outdated status.
Top 2 Comment Summary
The article advises against using TypeScript enums due to potential compatibility issues in future JavaScript environments where TypeScript might be run directly in Node.js or browsers with added typings. Instead of enums, the author suggests:
Using Union Types for state-like enums, e.g.,
type State = "Active" | "Inactive"
.Using
const
Objects for scenarios where a closed set of values is needed, likeconst State = { Active: 1, Inactive: 0 } as const
.
This approach avoids runtime code generation associated with enums, making the code more future-proof and compatible with upcoming JavaScript enhancements. The author provides an example and references further discussion on type annotations in JavaScript.
9. Two Hard Things (2009)
Total comment counts : 5
Summary
The article discusses a popular saying in the field of computer science, originally attributed to Phil Karlton: “There are only two hard things in Computer Science: cache invalidation and naming things.” Over time, this quote has inspired numerous variations and additions by different individuals, highlighting other challenging aspects of computing:
- Leon Bambrick added “off-by-1 errors” to the list.
- Mathias Verraes focused on issues in distributed systems, specifically mentioning “exactly-once delivery” and “guaranteed order of messages.”
- Phillip Scott Bowden humorously remarked on the repetitive nature of such sayings in computer science.
- Nat Pryce commented on the abundance of these variations suggesting that programming might not be as straightforward as often thought.
The article also notes the origins of the quote, first appearing online in Tim Bray’s blog around 1996-7, and tracks the evolution of its mention and variations over the years through updates by Martin Fowler. The piece reflects on how this saying has become a cultural touchstone within the tech community, illustrating both the humor and the inherent difficulties in the field.
Top 1 Comment Summary
The article discusses Phil Karlton’s statement that there are only two hard problems in Computer Science: cache invalidation and naming things. The author clarifies that “naming things” is often misunderstood as merely choosing coding conventions like camel-case. Instead, Karlton likely meant the complex issue of ensuring that names (or identifiers) reliably correspond to the actual objects or concepts they are meant to represent (intension vs. extension). This problem parallels cache invalidation, where the challenge lies in determining when to end the association between a name and its referent when the referent changes or becomes invalid.
Top 2 Comment Summary
The article discusses the challenges in computer science, specifically highlighting two major issues:
Synchronizing shared access to the same resource - This refers to the difficulty in managing concurrent access to shared resources in a way that prevents conflicts or data corruption.
Cache invalidation - This is about ensuring that when data changes, all cached copies of that data are updated or invalidated to reflect the current state, which is crucial for maintaining data integrity across systems.
10. Byzantine-Sassanian War (602-628 CE): The Last Great War of Antiquity (2023)
Total comment counts : 8
Summary
The article discusses the culmination of centuries-long conflicts between the Sassanian and Byzantine Empires, focusing on their last significant war in the early 7th Century CE. This war, known as the “Last Great War of Antiquity,” left both empires severely weakened:
Historical Context: The Sassanians and Byzantines had been rivals since the rise of the Sassanian dynasty, with conflicts generally limited in scope due to the balance of power and resources.
The War’s Catalyst: After a period of peace following the Byzantine-Sassanian War of 572-591 CE, tensions reignited due to internal Byzantine political instability. Emperor Maurice’s harsh fiscal policies led to military mutinies and his eventual overthrow by Phocas in 602 CE.
Sassanid Intervention: The murder of Maurice prompted Sassanian King Khosrow II to intervene, claiming to avenge Maurice, his “friend and father-in-law,” and to reclaim lost territories. This led to initial Sassanian successes, capturing key Byzantine cities.
Byzantine Counter: Phocas’ poor leadership and brutality led to his overthrow by Heraclius in 610 CE. Heraclius, with strategic military and diplomatic efforts, managed to turn the tide against the Sassanians, though at great cost.
Outcome: Despite Heraclius’ victories, both empires were left exhausted. This vulnerability allowed the emerging Islamic Rashidun Caliphate to expand rapidly into the territories of both empires, significantly altering the geopolitical landscape of the region.
The narrative concludes with the Byzantine Empire under Heraclius barely surviving due to the external threat of the Islamic expansion, which neither empire could adequately resist due to their weakened states post-war.
Top 1 Comment Summary
The article discusses the severe impact of Justinian’s Plague on the Byzantine Empire during the 6th century. This plague, which occurred around the time of the Byzantine-Persian wars, resulted in a devastating loss of life, killing approximately 35-50% of the Byzantine population and significantly reducing economic productivity. Recovery in terms of population took about 200 years. Interestingly, the plague did not affect Persia as severely, with an estimated 20-30% of its population succumbing, thus shifting the balance of power in favor of Persia. This shift weakened Byzantium’s position just as it was attempting to reassert dominance over the Mediterranean world.
Top 2 Comment Summary
The article recommends a podcast called “The History of Byzantium” for those interested in learning about Byzantium. It mentions that this podcast is a follow-up to Mike Duncan’s “The History of Rome” podcast and provides a link to the podcast’s website.