Archive for August 24, 2026


Below are my personal thoughts and reflections on Andrew Ng’s Stanford Machine Learning lecture on Generalized Linear Models (GLMs), including the key ideas I found interesting and how I understood them.

There is something that feels almost like magic in the mathematics of GLMs.

By changing only the underlying assumed probability distribution of the hypothesis function, and expressing it in the form of an exponential family distribution, we can derive several well-known machine learning algorithms:

  • Ordinary Least Squares, using the Gaussian distribution
  • Logistic Regression, using the Bernoulli distribution
  • Softmax Regression, using the Multinomial distribution

This is a beautiful mathematical abstraction. We can essentially plug in a different probability distribution and derive a corresponding model. For example, the Gamma or Poisson distributions.

What makes this even more interesting is that these machine learning algorithms are quite different from one another. Each solves a different type of problem: regression, binary classification, or multiclass classification.

And yet, they can all be understood through the same underlying mathematical framework.

Isn’t that awesome?

The GLMs can be derived from the probabilistic interpretation of these machine learning algorithms. Once we have that probabilistic foundation, typical gradient descent or gradient ascent can be used to minimize the loss function J(x, y, θ) or maximize the log-likelihood, log(L(θ)), when fitting a GLM to a dataset.

There is another aspect I find particularly fascinating.

From the probabilistic interpretation of these regression and classification algorithms, the logistic function emerges naturally from the mathematics. It isn’t simply an arbitrary function that happens to work well. The probabilistic formulation helps answer the deeper “why?” behind its use.

And that is what makes GLMs so beautiful to me.

Different algorithms. Different probability distributions. Different problems.

Yet one elegant mathematical framework connects them all.

This is magic.

Twenty-one years ago, I had the honor, together with Sakis Kasampalis, of starting a project to translate into Greek some of the most important articles of the GNU Project, as supporters of the Free Software Foundation.

One of the articles I like the most is The GNU Project, originally written by Richard Stallman in 1984. You can read the Greek translation here.

In my opinion, anyone who uses free software or open-source software should read it at least once. It offers an important historical perspective on how the GNU Project began in 1984 and explains the ideas and principles that shaped the free software movement.

Twenty-one years later, I still feel proud to have contributed, even in a small way, to making these ideas more accessible to Greek-speaking readers.

Hey everyone! 👋

Just for fun, I decided to take on a small electronics project: building my own Arduino-compatible board from scratch, based on the Atmel ATmega328 microcontroller.

Why build one instead of simply using a ready-made Arduino? For me, part of the fun is understanding what’s actually happening under the hood and seeing how a few basic components can come together to create a fully functional microcontroller board.

Here’s what I have for the build:

  • ATmega328 microcontroller
  • Crystal oscillator
  • Resistors and capacitors
  • Voltage regulator
  • LEDs
  • Breadboard and jumper wires
  • A few other components needed to get everything running

The only thing missing right now is a battery, which I’ll pick up tomorrow. 🔋

Once assembled, this little custom Arduino could be used as the foundation for all kinds of projects – sensors, automation, IoT experiments, robotics, or simply more electronics tinkering.

For now, the goal is simple: build it, power it up, and see if it works! 😄

Nothing fancy, just a fun little project and a good excuse to spend some time with electronics.

See you soon!

My beloved Socrates once said, “I know one thing: that I know nothing.” This is actually an illogical sentence. Strictly and logically speaking, you cannot know something if you know nothing. However, Socrates knew that the only thing he truly knew was how little he actually knew.

Many people in his time thought that they knew things and were masters of their subjects. But Socrates understood that knowing is very difficult, especially when it comes time to answer really difficult questions about a particular topic.

Most of the time, he asked questions because he genuinely wanted to understand. One day, he came to the conclusion that although the people around him had skills and knowledge, they did not actually have a deep understanding of them.

This is the only reason why he was a little wiser, not because he knew more, but because he understood that, at the end of the day, the things he thought he knew were not as certain as he had believed. He also understood that other people were often ignorant of their own lack of knowledge.

That does not mean that he had all the answers. It means that he was one step closer to the truth.