Agentic AI: Can an AI Agent Clean Up the Hard Drive?

I’m probably not the only person who has a folder on their hard drive that should be cleaned up at some point. Mine happens to be called “Aufräumen” (Clean Up), and whenever I manage not just to keep filling it but actually want to clean it up, I’m overcome by a leaden fatigue after 2-3 files.

Anthropic’s Claude offers the possibility to connect a Large Language Model with external software through the Model Context Protocol. This means the LLM is no longer “just” limited to text output, but can make decisions or even execute actions. Claude already comes with some integrations, for example the ability to access the local file system (at the very bottom of the screenshot).

Claude integrations screenshot

My prompt: “Can you please look at my ‘Aufräumen’ folder on the desktop and see how the files there could be sensibly organized?”

First, Claude got an overview of the files in the folder. With more than 600 files, Claude needed two attempts. In doing so, Claude only examined the file names, although it would have been possible to open at least some of the files. However, that would have taken even longer. Claude then came up with a proposal in which my files were divided into 12 categories. These made a lot of sense, I only gave Claude one note before the AI cheerfully started sorting my data:

Folder structure screenshot

Just for sorting the 600 files, nearly 4 hours were necessary, partly with longer breaks because my usage limit was exhausted and I had to wait until I could use Claude again. This waiting time is not included in the 4 hours. But even so, Claude needed breaks again and again, sometimes the server was unreachable, then a context window was full and I had to type the prompt again in a new chat, or a “Continue” button appeared that had to be pressed. The computer actually got hot, Claude required a lot of power, but really needed a lot of time for each file. Sometimes it looked like this:

Claude working screenshot

For this to work at all and to avoid having to approve the action for each individual file, Claude needs approval for each action category. You should only do this if you also have a backup of your own files.

Did it work? A clear “partially”. Not all documents were correctly categorized. This is naturally also due to the fact that files were only categorized by their names. But it’s definitely a good pre-sorting, and in that time I probably would have fallen asleep several times out of self-defense. So it was worth it, even if the result isn’t perfect yet.

In the next step, I will build such a system with a locally installed LLM that also opens and reads files to sort them correctly.

Visualizing overlaps of ETFs in an UpSet diagram

Today, two topics I find particularly exciting come together: data analysis and visualization, and finance. Choosing the right ETFs is a topic that fills countless web pages and financial magazine articles. However, it’s equally fascinating to explore the overlaps between ETFs. Previously, I compared the Vanguard FTSE All-World High Dividend Yield UCITS ETF USD Distributing (ISIN: IE00B8GKDB10) and the iShares STOXX Global Select Dividend 100 UCITS (ISIN: DE000A0F5UH1). I also analyzed the performance of these two alongside the VanEck Morningstar Developed Markets Dividend Leaders ETF (NL0011683594) and an MSCI World ETF (IE00B4L5Y983).

The holdings included in an ETF can be downloaded from the respective provider’s website; I performed this download on October 5. The data requires significant transformation before it can be compared. My R-based notebook detailing this process can be found [here]. For the visualization, I chose an UpSet diagram, a relatively new type of visualization that I’ve used in a paper and another project. While Venn diagrams are commonly used for visualizing overlaps between datasets, they become unwieldy with more than 3 or 4 datasets. This challenge is clearly illustrated in examples like this:

The size of the circles, for example, does not necessarily reflect the size of the datasets. An UpSet diagram is entirely different:

Yes, it takes a bit of effort, but it shows much more clearly how the datasets relate to one another. On the far left, we see the size of the datasets, with the Vanguard FTSE All-World High Dividend Yield having the most holdings—over 2,000. On the right-hand side, we see the overlaps. The point at the very bottom beneath the tallest vertical bar indicates that the Vanguard FTSE […] has 1,376 stocks that no other ETF includes. Similarly, the iShares Core MSCI World has 757 titles that no other ETF contains. In the third column, we see that these two ETFs share 486 titles that the other two ETFs do not include. I find that quite fascinating. For example, I wouldn’t have thought that the Vanguard contains so many stocks that the MSCI World does not.

The VanEck allegedly has one stock that no other ETF contains, but that’s not accurate; that entry was just cash. Otherwise, 81 of its 100 titles are also included in the MSCI World. All of its titles are included in the Vanguard.

It would now be interesting to see how the weightings align. However, that’s an additional dimension that would likely be difficult to represent in an UpSet diagram. Still, it’s necessary to take a closer look at this because the overlaps might result in unintended overweighting of certain stocks. That would be a topic for the next blog post.

ggplot2 and the New Pipe

Why doesn’t this code work?

mtcars |> ggplot(., aes(x = mpg, y = hp)) + geom_point()

The problem with the code above lies in the use of the pipe operator (|>), right before ggplot. ggplot2 is not natively supported with the R-specific pipe (|>), as used here. However, ggplot2 works seamlessly with the Magrittr pipe (%>%) from the dplyr package. Here is the correct usage:

library(ggplot2)
library(dplyr)

mtcars %>%
ggplot(aes(x = mpg, y = hp)) +
geom_point()

Alternatively, the data must be explicitly passed to ggplot, as shown here:

library(ggplot2)

mtcars |>
ggplot(data = ., aes(x = mpg, y = hp)) +
geom_point()

Here, the dot (.) represents the data being piped from mtcars into ggplot, and you need to specify it as the data argument in the ggplot function.

The Digital Analytics Association is history – and no one cares.

It was a bit surprising. I had recently emailed with Jim Sterne when it came to the German branch. The DAA had also contributed a foreword to my web analytics book. It’s a bit of a shame.

For those who don’t know: The DAA was previously the WAA, the Web Analytics Association, and it created the most widely used definition of web analytics. Although that definition has long been missing from the website, most researchers who copy quotes from other papers didn’t seem to care.

But how is it possible that such an organization, despite the importance of data, is shutting down? It could be, for example, because many have installed Google Analytics & Co., but the data is not actually being used. In my last paper, which unfortunately isn’t public yet, it was found that most users don’t even realize that embedding the GA code alone isn’t enough to work data-driven. And maybe it’s also a bit due to the DAA itself, that it didn’t manage to make its relevance clear.

I had only been a member out of nostalgia in recent years. I had used my student status to lower the membership fees a bit.

The website is already no longer accessible.

From WordPress to Hugo and back again

Three years ago, for the 15th anniversary of this blog, I moved from WordPress to Hugo. Super-fast pages, everything in R, actually a cool thing. But in reality, it wasn’t that great. I always needed an R environment, which I didn’t always have. Git drove me crazy at times. And some problems were just impossible to troubleshoot. So now I’ve moved back again. Maybe the rankings will return as well, which I lost after the move.

Artificial Intelligence (AI), Large Language Models (LLMs), Data Science, Machine Learning, Data Mining, and Statistics: What’s the difference?

The terms Artificial Intelligence (AI), Machine Learning, Data Science, Data Mining, Statistics, and Large Language Models (LLMs) are often used interchangeably or misunderstood. Clearly differentiating between these concepts helps you navigate discussions and make informed decisions in data-driven contexts.

Artificial Intelligence (AI)

AI encompasses techniques and algorithms that enable computers to perform tasks traditionally requiring human intelligence, such as reasoning, decision-making, and pattern recognition.

Machine Learning (ML)

ML is a subset of AI where systems learn from data to improve decision-making or predictions without explicit programming. Applications include recommendation engines, fraud detection, and image recognition.

Data Science

Data Science is an interdisciplinary field combining scientific methods, processes, and systems to extract actionable insights from data. It integrates domain expertise, statistical techniques, and data analysis skills to make informed business decisions.

Data Mining

Data Mining involves exploring large datasets to discover meaningful patterns, correlations, or trends. Common applications include customer segmentation, market basket analysis, and anomaly detection.

Statistics

Statistics forms the mathematical basis for Data Science and Machine Learning. It includes methods for collecting, analyzing, interpreting, and presenting data, ensuring rigorous analysis and reliable results.

Large Language Models (LLMs)

Large Language Models are a specialized, advanced type of Machine Learning model that process and generate natural language text. They excel at tasks such as content summarization, text generation, language translation, and interactive dialogue (e.g., ChatGPT).

The Connection Between These Terms:

  • Artificial Intelligence is the overarching goal of creating systems that simulate human intelligence.
  • Machine Learning is a key approach to achieving AI through data-driven learning.
  • Data Science covers the broader methodology of turning data into actionable insights.
  • Data Mining focuses specifically on finding meaningful patterns in large datasets.
  • Statistics underpins these fields, providing the mathematical rigor needed for trustworthy analysis.
  • Large Language Models are an advanced application of Machine Learning, focusing on language understanding and generation.

Why clarity matters

While “Data Science” has dominated conversations in recent years, many discussions have now shifted towards AI and especially Large Language Models. However, even with the buzz around AI, it’s important to remember that successful projects often rely heavily on foundational Data Science and robust statistical methods. Clearly distinguishing these concepts allows you to harness the full potential of data-driven solutions and avoid common misconceptions.

How do minimalism and Apple products go together, when Apple is so expensive?


I have been using Apple products almost exclusively since the mid-90s. Now and then, I engage in debates about the pros and cons of Apple products compared to their competitors, especially regarding the price difference. And of course, the question arises whether minimalism and using Apple products even go together. It creates an ambivalence between design culture and the contradiction of consumption.

Continue reading

Eternal November: Will Mastodon Suffer the Same Fate as Usenet?


Mastodon and the Fediverse had maintained a niche existence for many years until they were thrust into the spotlight by Musk’s acquisition of Twitter and the ensuing turbulence. Since then, the Mastodon community has not been growing like a hockey stick, as it’s called in investor jargon, but like a rocket. This is a big win for those who champion open-source principles. However, this rapid growth might also become a curse, and for several reasons.

Continue reading