Welcome to... Alfredo Cruz-Carlon (home)page
I'm a computer scientist that enjoys folding paper, bike riding and swimming.
My main interests in computer science are programming languages, software
engineering and computer science education.
In here I will put on some stuff I'm working on or that I found interesting.
On what topics exactly? I don't know :)
There are a lot of pages being built on top of different frameworks that
provide cool animations, connections to databases, and so on.
I think that to host a few thoughts here and there, I don't need that much,
besides I do not think that you, the unexpected but welcomed visitor would
take gladly to see a page that eats away copious amounts of your precious
RAM and processor power in animations or advertisements.
So, this page is basic, with a simple css, running on a cheap virtual server.
I am a fan of fast software that does what it supposes and uses as few
resources as possible.
This page and its contents have been written directly in HTML using Emacs.
IRead is a section where I will put some thoughts and experiments on papers
I read.
So far it has the amazing count of 2 (two) entries, I will add more in time.
-
18-05-2025 What is Programming?
I read this opinion paper discussing the different perceptions of the concept:
programming and I related it to my practice as Introductory
Programming lecturer.
-
21st Century C++
Bjarne Stroustrup shared some of his insights on C++. I found it super
interesting on different perspectives.
This is a section in which I write some stuff about Neural Networks and
so on.
I'm sorry, this doesn't cover any framework, just some things that I find
cool :).
It is work-in-progress and for the moment in one page, as it grows it will get
more organized.
Neuron
A(ntoine's) notebook is a small piece of code to manage versions of single
files in a non-linear fashion. I'll add the code soon.
Anote
Here I'll drop some random bits.
Most are related to other projects but I think they are slightly interested
on their own.
-
C++ pointer wrapper
Due to a misconception, I found myself not being able to use
vector, so I decided to write a simple wrapper
for safer pointer use.
Tiny bits that are just mentioned.
-
09-06-2025: Sometime ago I found that a "white noise" broadcast on
YouTube helped me to concentrate while listing to it on my headphones.
However, I feel it is too much of a waste to just listen to "random
noise". So, I wrote a small Python program to generate some "white noise".
We all know it is not trully random, but it is close enough :) And,
since I had control over what I created, I decided to mix in some
effects.
The first Passing Rain is
white noise with the same sinusoidal volume control on both ears.
The second
Passing Rain Adjusted
is white noise with the same sinusoidal volume control on both ears, but
before adjusting the volume, a linear interpolation with 35 points
is performed between pairs of "sufficiently off" points. Effectively
removing some randomness (actually a lot :D).
The third
Alternating Rain is white
noise with a sinusoidal volume control starting at for the left channel
and another starting at for the right channel.
The fourth and fifth are more if you are into regular beats.
The fourth Slow Beat is a sine wave each
second using only the upper part of the intensity spectrum. I'm using
16 bits for each number but only using the [0,32767] range.
The fifth Slow Motor are 15
sine waves per
second, again using only the upper part of the intensity specturm.
Watch for your volume if you are using headphones!
-
25-05-2025: I asked Gemini to generate a code to solve the
24 arithmetical
puzzle in Ada. I haven't made progress checking the
correctness of the generated code. I was planning to cross check it
with implementations on other languages in RosettaCode, but it has been
down for the best part of the week. What got my eye was the "tests"
Gemini generated, here is an example:
It is difficult to believe this kind of code generation is taken seriously.
Of course I chose this language and this problem because I don't expect
to exist a lot of Ada implementations of 24. At RosettaCode there was
none. And if you are using AI to generate code that has been done and
redone for 1000 times, then, isn't really a cheaper way?
-
15-05-2025: I watched a GitHub Copilot tutorial video about basics.
At some point Copilot is asked what error handling functionality should
be added to some code.
The first one to be suggested was an ArgumentNullException and
I immediately remembered back when I was an undergrad .
The Java compiler used to refuse to compile your code if you failed to
catch a NullPointerException that some method you called
may throw.
I had this professor that used to say: "Just compile the damn thing,
I KNOW what I'm DOING".
-
15-05-2025:
I came across this post on the once
great, then not so great before they sold it and now it is just a
zombie. If I recall correctly it was one of the main aims of
C++: to not impose a certain mindset. But for some reason they lobby
a lot for modern C++. I think one of the reasons is that you need
certain standard guidelines in order to be able to work quickly
on different teams without the (re)learning curve. Some changes are
justified to help the careless developer. I think it is one of
the worst reasons to change a language, it is like saying: We are
going to introduce these changes into (insert your favorite natural
language here) because some people fail to speak it "properly".
Copyright Alfredo Cruz-Carlon, 2025