Archives
All the articles I've archived.
-
The Black Box of AI: A Reflection on Understanding
A bilingual reflection based on Davide Castelvecchi’s 2016 Nature article, exploring the epistemological challenge of trusting machines we can’t fully understand.
-
Inside the Black Box: The Limits of Our Understanding
From hyperplanes to neural networks, a reflection on why some of the most powerful AI models remain opaque to human comprehension.
-
The Code Is Not Probabilistic
A reflection on why the stochastic nature of LLMs does not make their output probabilistic — and why developers must learn to read, not just generate, code.
-
AlphaFold doesn’t predict words, it predicts shapes
Why confusing AlphaFold with an LLM is misleading: it doesn’t predict text, it solves the 3D puzzle of biology
-
Why AI Fails at Invoices but Excels in Surgery
A real-world reflection on why AI struggles with messy business tasks like invoicing but succeeds in highly controlled environments such as robotic surgery
-
Can an AI Be Conscious? A Centrist Manifesto for Careful Thinking
Reflections inspired by Jonathan Birch on the illusion of consciousness in AI, its social implications, and the real possibility of non-human consciousness.
-
Bioinformatics without Magic: Science, Code, and Biological Meaning
7 core tasks that bioinformatics really performs in research centers like IFC-UNAM
-
🧬 Getting Started with Bioinformatics Coding: Bash, Python & R
Personal notes on how to get started with bioinformatics coding, including tools, learning resources, and practical entry points for genomic data analysis.
-
Why Information Matters More Than Ever in Biology
From the elegance of Crick’s Central Dogma to the digital revolution in biology, why information may be the final key to understanding life.
-
When Physics Meets Life: Beyond Disciplinary Boundaries
Exploring how physics and biology intertwine, inspired by the 2024 Nobel Prize in Physics.
-
Why Is It So Hard to Apply Artificial Intelligence in Biology?
Exploring the 5 key challenges of applying AI to the life sciences.
-
Decoding SRT-H: Why This Surgical Robot's Name Matters
Behind Johns Hopkins' breakthrough surgical bot lies a brilliantly literal naming convention. Let's dissect why SRT-H isn't just random alphabet soup.
-
SRT-H: When Surgical Robots Finally Start Speaking Our Language
Johns Hopkins and Stanford just pulled off something remarkable: an AI-guided surgical robot that autonomously extracted bile ducts. Here's why this changes everything.
-
Churn Prediction Using Random Forest: A Business Value Perspective
How we used Random Forest and permutation importance to increase business value in churn prediction
-
Phishing Website Detection Using Machine Learning
Development of a machine learning model to detect phishing websites using supervised classification techniques.
-
Cybernetic Revolutionaries: A Brief Review of Eden Medina’s Book
How Chile’s socialist government tried to reinvent economic planning using cybernetics—and why its legacy still matters.
-
Stolen Art: The Hidden Copyright Crisis in AI Image Generation
AI-generated images flood our feeds, but they’re built on uncredited, uncompensated creative labor. Are artists being erased?
-
Distance and Disconnection
A post about the metaphorical and literal senses of distance.
-
Understanding py-dispatcher
A simple Python project for managing prioritized tasks.
-
What David Beazley Taught Me About Python (and Thinking)
A personal reflection on finishing Beazley’s advanced Python course — and how it changed the way I code and reason.
-
Solving the Final Puzzle: A Pythonic Integration Challenge
Bringing together coroutines, async logic, exceptions, and object-oriented design to solve a final puzzle from Beazley’s course.
-
Building an Async Messaging Protocol in Python
From coroutines to communication — implementing a protocol for asynchronous message handling using asyncio.
-
Delegating Generators with yield from in Python
How to compose coroutines using yield from and return values from generator pipelines.
-
Context Switching and Cooperative Multitasking in Python
How generators and coroutines enable lightweight, cooperative concurrency by yielding control in Python.
-
Understanding Stack Traces and Control Flow in Python
A closer look at how exceptions propagate through the call stack and how to read and use Python’s stack traces effectively.
-
Designing Exceptions and Message Handling in Python
How to craft your own exceptions and manage failure gracefully using Python's exception system.
-
Mastering Context Managers in Python: Beyond 'with open()'
Understanding how context managers work under the hood — and how to build your own using __enter__ and __exit__.
-
Building a Stack from Scratch in Python
Reinventing the stack data structure in Python to understand object-oriented design and control flow.
-
Coroutines in Python: From Passive Generators to Reactive Code
A hands-on introduction to coroutines in Python using send(), yield, and the power of interactive pipelines.
-
Generator Pipelines in Python: Refactoring a Portfolio Report
Learn how to refactor procedural code into a clean, lazy-processing pipeline using Python generators.
-
Building a Portfolio Report Tool with Pure Python
From raw CSV files to structured reports — building a simple financial data pipeline using Python, inspired by David Beazley’s course.
-
I Took a Course with David Beazley. Here’s What Stuck.
Reflections on taking an advanced Python course with David Beazley — and how it reshaped my understanding of the language.
-
Working with CSV Files in Python: A Practical Step-by-Step Guide
From understanding the CSV format to converting, reading, and downloading files using Python. A complete beginner-friendly guide.