Monday, December 19, 2022

HelenOS 0.12.1 is here!

HelenOS 0.12.1 (Cathode) has been released. Let's have look at what's new.

I was glad to get this release out of the door. We've fixed a number nasty, longstarning, bugs. We've added a number of new features, including the task bar. With this out of the way, I can get back to work on more stuff!

Thursday, October 27, 2022

Working on the Task Bar for HelenOS

Here's a little show and tell - an update on my progress implementing the Task Bar for HelenOS UI.

Tuesday, October 25, 2022

Partial Solar Eclipse 2022-10-25

Projected with a 10 cm refractor onto a sheet of paper and photographed with a handheld digital camera. Image cropped. No post-processing.

Tuesday, September 27, 2022

Tick tock! See the clock?

Do you know what time it is? Clock time!

Thursday, September 22, 2022

Problems with Hound audio architecture

When debugging audio problems with HelenOS HD Audio driver in VirtualBox, I noticed that HD Audio driver does not actually report the rates/formats supported by the audio device, nor does it set them. So I tried to implement it. Soon I ran into problems (Hound crashing), but mainly the audio device interface is not up to the task. It just expects the audio device to be something like a Sound Blaster, basically being able to set any rate from a (min, max) interval. (In reality, SB can only set the rate approximately.

Also note that I found that we round the rates to multiples of 100 Hz when communicating to Hound. Oh my. In the end I found out that Hound never sets any other format than the default 44100Hz / stereo / 16-bit, because it starts playing even before any stream is started, so it has no way of knowing what format to set.

So I'm not sure if it even makes sense to improve the driver within the scope of the current audio framework, which is severely limited. Even while developing the HD Audio driver I realized that it's a poor match for HelenOS audio architecture. Here's a compiled list of problems encountered so far:

  • Each sound card / audio device can only have up to one input and one output (HD Audio can have mutiple).
  • Both input and output must support the same rates/formats (can be different in HD Audio).
  • Audio device is expected to support basically any rate in some (min, max) interval (but HD Audio only supports a short list of specific rates).
  • Rate is passed from client to server in multiples of 100 Hz.
  • Audio playback starts as soon as client connects, even if no streams are playing. This means we don't know what the format will be, so we pick default format (and we cannot convert rates).
  • Everything thus plays at 44100Hz / 16 bits / stereo.
Clearly the audio architecture needs a lot of (re)work. Complete rework. Yup. (Not today, though).

Thursday, June 16, 2022

File Dialogs - Deluxe!

As you might know, our temporary file dialogs were previously a poor man's affair, containing just a plain text entry and an OK / Cancel button pair.

But now lo and behold!

A file list entry for browsing files/directories complete with a scrollbar. And, as is the standard for libui, both in graphics and glorious text mode. Is that cool or is it not? Granted, it's not perfect, but I can feel progress is being made...

And I can assure you it's only going to get more exciting. Just wait and see.

Saturday, February 19, 2022

Helen's Weekend Out

Helen decided that, due to lack of snow and abundance of sunshine, she'd love to spend the weekend hiking in the mountains. Here's the postcard she sent:
I love this 'speedpainting' by David Revoy (CC BY 4.0). Here's a lik to the full size image and to his original blog post.

Wednesday, February 16, 2022

Come, Mindy!

Here's another "meme". As you should already all know, I love making jokes that nobody ever gets (except for myself). Ha Ha.
Brain: Come, Mindy, it's time for us to write an optimizing C compiler for the Z80 from scratch!
Mindy: Why?
Brain: Writing an LLVM backend is a daunting task.
Mindy: Why?
Brain: It's big, complicated, and a moving target.
Mindy: Why?
Brain: Because it's something I want to do!
Mindy: Okay, I love you!

And here's the original text: (in case you haven't watched all the episodes of Animaniacs)

Brain: Come, Mindy, it's time for us to take over the world!
Mindy: Why?
Brain: By right of superior intelligence I am best suited to guide the destiny of this planet.
Mindy: Why?
Brain: My impairable powers give me the mandate.
Mindy: Why?
Brain: Because it's something I want to do!
Mindy: Okay, I love you!

Sunday, January 30, 2022

Sport need no grammah

If your ah sportn persn ya dun nead ta lern na stinkn gramah.
Also, if you don't speak Czech you probably won't get this.