My bike ride had to be interrupted. Now I'm stuck a few km away from the car.

I wonder how long I have to be here.

I may have put a several hundred dollar bid on a Vectrex.

Working at home, it's hot outside and the aircond needs servicing.

I think I need to go buy a fan while waiting for the service guys to be able to come over to clean it.

When working from home, several layers of VM's and remote desktops.

Am I the only one who feels that metal is one of the best types of music for home working?

Currently enjoying:

@amiloradovsky I also note that like most older computer science papers, the one that I linked to in the previous post is quite readable.

Show thread

Today's progress on KAP: Implementation of the min and max functions.

The single-argument versions of these functions are the floor and ceiling functions. Thus: ⌈1.2 is equal to 2.

Now, I have implemented the complex versions of these functions as per the APL standard. I was using this paper for reference:

Now, I'm wondering if this is the best way to define floor and ceiling for complex numbers. @amiloradovsky do you have any suggestion?

Electron applications are the worst

Case in point: Microsoft Teams

When going to the Teams web site on a Linux machine: Everything works. I can do screen sharing.

When using their Electron application. Most of the things works. Screen sharing is disabled.

Why does Electron even exist?

What have I been doing lately? Well, during downtime I have been learning how to use a mainframe.

@snowyfox I see. That's a bit annoying though, because I like seeing a lot of content on the screen. :-)

Just testing streaming my development environment:

I'll just keep it up briefly, but I intend delete this toot as soon as I'm done.

I have a strange problem that I can't find much information about when searching online.

My primary swap partition is on an encrypted LVM volume. It was configured by the Fedora installer.

I write a program that forces swap to be used (I allocate the amount of equal to the amount of RAM I have and write some data to every memory page).

When I run this test program with the encrypted LVM swap partition, the entire machine hangs. Sometimes it recovers after an hour or so bt most of the time I have to hard reset.

I then remove this swap partition, and create a dedicated partition on a different disk. I encrypt it (using cryptsetup luksFormat) and initialise it as a swap partition and re-run my test.

When I do this, the machine still hangs a bit when it accesses swap but it recovers within 15 seconds consistently.

There is clearly a problem with LVM, encryption and swap here, but I can't find much information about this at all. Does anyone have an idea?

Since I do a lot more online meetings now, I got myself a webcam.

This made me think about streaming. I wonder if anyone would watch if I streamed myself doing development (working on one of my projects, like KAP or Climaxima).

If anyone wants to look at the code, it's here:

If you want to run the (very rudimentary) user interface, you can start it using: ./gradlew run

Show thread

I spent some time working on my language (temporary name: KAP)

I've implemented first-class functions, which is something that is not typically available in APL. I.e. you can, for example, have an array of functions.

The temporary syntax is as follows. The following assigns a lambda function to the variable foo:

foo ← λ { ⍵+1 }

This is different from traditional function definition which is similar, but does not include the lambda symbol. The difference is while the traditional syntax declares foo to be a function, the KAP syntax declares foo to be a variable holding a scalar value, a function.

You use the symbol ⍞ to dereference a lambda function. It's used like so:

⍞foo 10

Now, the semantics of function dereference is not great. It actually binds strongly to the next argument, which is why it's parsed as ⍞foo) 10 rather than ⍞(foo 10). This goes against the rest of the language which always parses right to left.

Is there a better way to express function dereference that I haven't thought of? Please provide suggestions if you have any.

Also, one may ask why I chose to use ⍞. There is no good answer to that, other than the fact that KAP does not implement the traditional functionality of ⍞ so the symbol was available. If anyone has a suggestion for a better symbol, I'd be happy to hear it.

Related to a different thread:

I sometimes an surprised by the amount detail some languages can squeeze into a word just by adding suffixes. But it's easy to miss the times where that happens in your own language, because you simply don't think about it.

The word I noticed was "Botaren" (it's the name of an IKEA bathroom curtain rod of all things). The word means "the one who cures".

How does this work? Well, turns out there are actually 4 (or 5, depending on how you count) levels to this word.

  • The root word is "bot", meaning "cure"
  • Adding an a at the end makes "bota" which means "to cure"
  • "botar" is the present tense version that someone "is in the process of curing"
  • "botare" is the verb form of this word
  • Adding the final n, "botaren" is like prefixing with the English word "the".

We won't be bundling with Electron any more, instead we'll ship the html/js files themselves.

As for the menu, I will write a library file that will exist across all of our tools and draw an interactive menu in the application view.

To do this properly, I don't want to use npm, I wrote a little dependencies manager to make sure all our lib files are in sync across the applications.

Let's see how that works out.

"A mobile application developed by the #Government #Technology Agency (GovTech) that helps in contact tracing for #Covid19 has been installed by more than 620,000 users since its launch last Friday.

With a decision to make the technology behind it available to developers around the world, even more people could stand to benefit."

#singapore #pandemic #opensource


Show more
Functional Café

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!