News

Measuring the position of the ISS

Flat Earthers like to claim that the "light in the sky" we're calling the ISS is actually some other object that is flying significantly lower. It kind of makes sense - if the Earth is flat and space doesn't exist, satellites can't be a thing either, so the ISS must be something else, like a balloon or a drone. The possibility that people constructed something 400 km above the Earth's surface is in direct opposition to their worldview, for example because data from such an object directly proves that there is actually a vacuum there, and that the Earth is round.

So if there was a simple way of checking that the ISS is actually flying at an altitude of 400 km, it would be a hard blow to all kinds of flat Earth claims. Luckily for us, a fairly simple method exists. I suggested it a few years ago to a flat Earther, and eventually used it in practice in 2020. Here is how I did it.

(more…)

A continuation of flat Earth debunking

In the previous entry, I described the story of a discussion with some flat-Earthers and how I created a refraction caculator in order to have stronger arguments. Today I'm going to write a bit about how this situation developed further (with the calculator, not with the flat-Earthers - I don't think anybody expects that I managed to convince a pseudoscientist? ;) ).

Let me just recap quickly on what the discussion concerned. It is that one of the flat-Earthers insists that some landscapes look the way they should on a flat Earth, and not how they should on a spherical Earth. He supports his claims by showing some photos he took and calculating some proportions of distances between characteristic points or sizes of some visible objects. It's actually a very reasonable approach - provided that one does everything earnestly, ie. calculates what proportions one should get on a flat Earth, and what they should be on spherical Earth. As it turns out - which is what the previous entry was about - that a fully correct analysis must even take atmospheric refraction into account, and it is negligible for most purposes.

The refraction calculator I created on this occasion had one major drawback - it allowed only for tracing a single light ray at a time. Because of this, for every photo you had to choose some specific points and calculate e.g. ratios of some angles. This actually still enables getting some interesting results, but isn't very attractive visually - it's just comparing numbers. So I came up with an idea of using computers to improve the situation a bit: what if I could create software that would simulate multiple rays at once, instead of just one, check where they hit the Earth's surface and generate a whole panorama based on that...?

(more…)

MaidSafe and PARSEC - a new distributed consensus algorithm

I'll write something about my work for a change.

I've been employed at MaidSafe for over a year and a half now. It's a small, Scottish company working on creating a fully distributed Internet. Sounds a bit weird - the Internet is already distributed, isn't it? Well, it isn't completely - every website in the Internet exists on some servers belonging to some single company. All data in the Internet is controlled by the owners of the servers that host it, and not necessarily the actual owners of the data itself. This leads to situations in which our data is sometimes used in ways we don't like (GDPR, which came into force recently, is supposed to improve the state of affairs, but I wouldn't expect too much...).

MaidSafe aims to change all of this. It counters the centralised servers with the SAFE Network - a distributed network, in which everyone controls their data. When we upload a file to this network, we aren't putting it on a specific server. Instead, the file is sliced into multiple pieces, encrypted and distributed in multiple copies among the computers of the network's users. Every user shares a part of their hard drive, but only controls their own data - the rest is unreadable to them thanks to encryption. What's more, in order to prevent spam and incentivise the users to share their space, SAFE Network is going to have its own native cryptocurrency - Safecoin - but it won't be blockchain-based, unlike the other cryptocurrencies.

(more…)

Educational GIFs

I'm slowly preparing a new post for the category "Physics for everyone". The post will describe the Lorentz transformation a bit more in depth, and say something about the consequences of it being the correct description of reality. I prepared two GIFs for this purpose:

The transformation of the coordinate system by a rotation (click for an animation)

The transformation of a coordinate system by a Lorentz transformation (click for an animation)

A more detailed description of those GIFs will be a part of the new post in the category Physics for everyone :)

I published the code I used to generate them on GitHub: https://github.com/fizyk20/spacetime-graph/tree/blog-post

What can you do with a phone that has a broken touchscreen?

I have been asked recently to try to recover some data from a broken phone. The catch: the data was in the internal memory, the option to connect the phone as an external drive via USB was turned off and the touchscreen was broken. So what can you do in such a situation? It turns out that quite a lot, and even though I haven't eventually managed to recover the data, the fight with the phone was pretty interesting and I think it deserves a bit of attention.
(more…)

A new project published - the 4D Labyrinth

I published another one of my projects today. I mentioned in the title that it is new, but that's not entirely true.

The history

The 4D Labyrinth is a program that I initially wrote about 10 years ago. My high-school friend had then an idea that a 4-dimensional shooter game could be quite funny. In his vision, the world would be 4-dimensional, but out of the 4 coordinates only 3 would be chosen to render a 3-dimensional scene. The player could change this set of coordinates at any moment, leading to strange situation like a 2-dimensional slice of another player moving towards you, briefly becoming 3-dimensional (as he would temporarily "jump" into the same space), kills you and becomes flat again. I decided to create a proof-of-concept of something like that, but I resolved to use continuous rotations of the visible slice instead of discrete coordinate set switching.

(more…)

A new domain

I'm not particularly rich, so when I was creating this blog, I preferred a free domain. It just so happened that my hosting was offerring free subdomains under its own domain (username.mydevil.net). I decided to use the opportunity and this is how my blog got the address ebvalaim.mydevil.net.

Unfortunately, a problem emerged. There were changes in the hosting company some time ago and the free domains changed their endings from .mydevil.net to .usermd.net. Existing domains were still working as long as nothing had to be changed about them. A few days ago, though, such a necessity appeared - my SSL certificate from Let's Encrypt expired and renewing it proved to be impossible on the old domain. I had to switch to a new one, without a possibility of even creating a redirection.

I used the domain ebvalaim.usermd.net, but I knew it had to be only temporary. In order to avoid similar situations in the future (either due to internal changes in the hosting company or having to change the hosting for some reason), I had to get an external domain.

As of today, then, welcome to the brand new domain ebvalaim.net :)

An adventure with a microcontroller

At the beginning of May I digged up an old toy of mine, from about 2002-2004 - a "test computer" based on the 80C535 microcontroller. The computer consists almost exclusively of the controller, the memory (EPROM + RAM), a power connector and a serial port (RS-232) and some I/O ports. The serial port serves as a means of communication with a PC, allowing for uploading to it programs written in a simple assembly language.

80C535 test computer

80C535 test computer

Two problems appeared, though. The first one was that modern computers rarely have an RS-232 port, and laptops probably don't have them at all. This one was easy to solve by ordering a USB adapter from the internet. The second one was more serious.

In 2003 I was 15 years old, so as you can probably guess, I didn't have much influence on the design of the computer. It was designed by my teacher, who also provided us (me and the other students in the electronics club) with some software for writing and uploading programs. The problem is, during the 14 years that passed since that time, I lost the software and I have no contact with the teacher. Well, I said to myself, I'm an adult now and I'm quite good at programming, so I can probably figure this out ;)

And so began my adventure with reverse-engineering a toy from the electronics club.

(more…)

Rust: applications with plugin API

Some applications let their users modify their functionality. In most cases, it is done via plugins - small libraries that are being loaded by the main program, and then called in some specific circumstances. A well-known example would probably be the instant-messaging programs like Pidgin. They can communicate using various protocols (Jabber, Facebook, ...), have custom themes or provide additional functions thanks to the plugins that are available for them. In the Orbiter simulator the users can add new spaceships in the form of plugins. There are a lot of possible use cases. In this blog entry I'm going to present a way of achieving a similar effect in the Rust language. My way isn't probably the only one or the best, but I find it simple and convenient :)

(more…)

Making fun with Ithkuil easier

During the last few days I've been improving a tool I created a long time ago, which was supposed to make it easier to have fun with Ithkuil. But let's start at the beginning

Ithkuil

Ithkuil is a constructed language created by John Quijada. Constructed languages (or "conlangs") are usually associated with children (I myself was creating my own languages when I was 10-12), but in this case you couldn't be further from the truth. Even though Ithkuil doesn't really have practical applications, I think it is unusually interesting.

Ithkuil emphasizes conveying as much information as possible, as concisely as possible. As a result, it has 45 consonants and 13 vowels, and almost every sound in a word carries a separate bit of information. How was this achieved?

In Ithkuil there are two main classes of words - formatives and adjuncts. Formatives function as nouns or verbs, adjuncts convey additional information about formatives and sometimes mimic the personal pronouns. Let's focus on formatives: each one consists of a root, which carries main information about the meaning of the word (like, for example, "oral sound"), which then can be inflected by over 20 different grammatical categories using numerous affixes. For example, the root for "oral sound" (-l-) can be inflected by adding "e-" in front -> "el-", making it "spoken utterance". To get the smallest possible word, we need another vowel and a consonant -> "elal". "a" marks the Oblique case, which is pretty neutral. "-l" on the other hand means that we are speaking of a single object, functioning as a separate whole, we mean it in its entirety and as a concrete object and not its mental representation. This way, "elal" can be translated just as "spoken utterance".

(more…)