Jupyter AI Magics Are Not ✨Magic✨

Sep 5, 2023

It doesn’t take ✨magic✨ to integrate ChatGPT into your Jupyter workflow. Integrating ChatGPT into your Jupyter workflow doesn’t have to be magic. New tools are seemingly coming out daily to help write code using large language models (LLMs). They appear to have a considerable positive impact on developers’ lives. GitHub claims 88% percent of developers…

Read More

Real Scientists Make Their Own Tools

Aug 8, 2023

There’s a long history of scientists who built new tools to enable their discoveries. Tycho Brahe built a quadrant that allowed him to observe the path and distance of a comet as it crossed the solar system, helping to prove the heliocentric model of the way the stars and planets move. Galileo Galilei built his…

Read More

7 Pro-Tips for Scientists: Using LLMs to Write Code

Jul 11, 2023

Scientists gain superpowers when they learn to program. Programming makes answering whole classes of questions easy and new classes of questions become possible to answer. If you have some programming experience, large language models (LLMs) can raise the ceiling of your performance and productivity. Using LLMs to write code turns a challenging recall task (What’s…

Read More

4 Reasons to Learn Xarray and Awkward Array—for NumPy and Pandas Users

Jun 5, 2023

You know it. We know it. NumPy is cool. Pandas is cool. We can bend them to our will, but sometimes they’re not the right tools for the job. Enter Xarray and Awkward Array. Read on for the four reasons why you need to learn these Python packages.   Reason 1:  You need labeled arrays of…

Read More

7 Lesser-Known Command Line Tools That Ship with Python

Apr 10, 2023

Like most people, I mostly interact with Python using the default REPL or with IPython. Yet, I often reach for one of the Python tools that come with the standard library. All these tools are implemented as “mains” in the various scripts and modules. Here are 7 I use on a semi-regular basis. 1. &…

Read More

ChatGPT on Software Engineering

Mar 7, 2023

Recently, I’ve been working on a new course offering in Enthought Academy titled Software Engineering for Scientists and Engineers course. I’ve focused on distilling the software engineering best practices that we use at Enthought with our clients, with the twist of “what parts are most useful for a scientist who writes software for R&D?” After…

Read More

What’s in a __name__?

Feb 7, 2023

if __name__ == “__main__”: When I was new to Python, I ran into a mysterious block of code that looked something like: def main():     # do some stuff if __name__ == “__main__”:     main() Looking at the code, I could see that it ran the main() function after checking the status of…

Read More

Why Python?

Jan 10, 2023

Why Python? Of all of the questions that I have been asked as the instructor of an Enthought Python course, this has been one of the most difficult to answer in a satisfying way. The answers I have given have always seemed more opinion than fact. Still, if someone asks me what language I recommend…

Read More

Accelerating Science: the Classical Mechanics Perspective

Dec 6, 2022

When thinking about enhancing R&D processes, Newton’s second law of motion provides the perfect framework. Classical mechanics teaches us that putting a body into motion requires applying force. The resulting acceleration will be the sum of the forces applied to the body, divided by the body’s mass: a = F/m. So, if we want to…

Read More

Retuning the Heavens: Machine Learning and Ancient Astronomy

Nov 1, 2022

What can we learn about machine learning from ancient astronomy? When thinking about Machine Learning it is easy to be model-centric and get caught up in the details of getting a new model up and running: preparing a dataset for machine learning, partitioning the training and test data, engineering features, selecting features, finding an appropriate…

Read More