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.
-
13-09-2024 Programming Without Problems
When we create a program we usually aim to solve a problem.
Is it possible to create (small) programs without a fixed problem?
-
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.
-
The 24 puzzle
I explored the capabilities of Gemini and Claude to write code in a
not so popular programming language (Ada) for a problem with no solution
for that language on Rosetta Code.
Tiny bits that are just mentioned.
-
14-09-2025: I have many reusable paper sheets. Sometimes I print
on one side and the other is clean, others I buy extra paper sheets that
end up not being what I needed and sometimes friends gift me some extra
clean or reusable paper sheets. I love handwriting, specially when I
use fountain pens, there is something I like about them. My handwriting is
terrible; I often tell my students that by the end of the semester they
would master two skills, the academic goals of the assignment and decoding
hieroglyphs :). I often craft my own notebooks and blocks.
Don't get me wrong, I also have my fair share of Moleskine, Fabriano and
365 notebooks.
Lately I'm using I block I made a long time ago, perhaps 7 or so years ago
with some block sheets that were too thin for me at the time. The sheets
are even older, perhaps 12 years? I don't even remember.
But I bought a couple of new fountain pens, a Platinum Preppy Extra-Fine
and a Pilot kaküno also Extra-Fine and both are great!.
If the pen doesn't come with a converter, it is not a problem, I have
a syringe, ink bottles and an affinity to mix inks :)
-
13-09-2025: I have been spending a lot of time preparing
Programming Without Problems
there were many ups and downs and corrections and so on. At some point
it was no fun to see so much HTML code together. So I wrote a small Python
(go figure :) ) script to help me strip all HTML code and just focus
on my writing. It seems to fit the bill so far so, I'm happy. It also
helps me to manage my references automatically, so that is nice; if
BibTeX is an interstellar ship, my code is the Wright's Brothers sketch :D.
-
19-06-2025: When I was in high-school at
UNAM's CCH-Sur
I used to spend quite sometime at the library.
It is a beautiful place, not only because the building is gorgeous
but also because its mathematics collection is amazing.
I spent hours there reading and browsing books and of course, napping.
I got the same feelings on the early days of Google.
After clicking on the 3rd page or so :)
With AI (ChatGPT, etc.) it is like entering a library in which all books
are blacked out and there is this annoying librarian asking
what you want and giving you a paragraph of a black book.
When you know exactly what you are looking for, this annoying librarian
could be useful.
I have spent half a day looking for a reference of some quote I have
buried deep in my brain.
However, when you look for guidance, the annoying librarian is the least
help you should seek.
I understand the need for empirical evidence on a claim.
What I can't grasp is the reaction of surprise when the evidence
supports common sense, like today on my social media feed regarding
a paper showing accumulation of "Cognitive Debt" when using AI for
creative writing.
AI will accelerate the success of those that 1) Know exactly
what thing they are looking for, 2) it is not easy to find or tedious
to achieve and 3) it is common enough in the training set.
AI will accelerate the creative process destruction of those that
are novice to a subject and are seeking guidance.
Of course, I would not be surprise that a model happens to be advertised
as fine-tuned to provide guidance.
-
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