Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
It was an interesting thesis to read. In the 'Conclusion and Reflection' section it says: "This journey has taught me that the more I know, the more I realize how much more there is to learn, and that every door that is opened leads to new doors." This also has been my experience with every subject that I encounter. Through reading this thesis, I learned a little bit more about Arabic typefaces and sensed something of its complexity, although I cannot read or write the Arabic script. Around 2015, I became aware of the special properties of the Arabic script when I had to implement right-to-left text with Uniscribe.
The Taras typeface is a modern Arabic typeface, designed specifically for editorial use. It combines classical aesthetics with contemporary elements, drawing inspiration from the intricate details of the Thuluth style. Thuluth is an Arabic script variety of Islamic calligraphy. The typeface comes with five weights and a light and a heavy abstract version. On page 100 of Section 04.3 it describes how Dajani tested the abstract versions and I thought it was a really clever way of doing it. Although she writes that the results of the experiment are limited and cannot be generalized, I still find that the six findings she reports, make it sound like it is quite solid.
On page 49 of Section 03.1 a Thuluth calligraphy sheet written by the calligrapher Yaser AlAshry is given. The text explains how the words are slightly slanted down (in the writing direction). If I understand the written text on page 54 correctly, it looks like the last (part of) letter of each word is written under the first letters of the next word. That is an interesting way to signal word endings, one that I did not know about yet. I always find it interesting to discover some new unique property of a language or script. This also made me realize that the font rendering engines (for OpenType, TrueType and such) are maybe too limited for script like the Arabic script. The function of a rendering enging is to take a text, convert it into glyphs, position those relative to each other and rasterize them. I wonder if there are already good rendering engines for Arabic calligraphy or if there are font engines that support some of the features found in calligraphy, such as the slanting found in the Thuluth style.
I presume that writing a thesis like this takes quite an effort especially if you want to incorporate samples of all the different versions of the font design and, in some places, annotate these to clarify what has been changed between these versions.
Some interesting links I found in the past days related to the subject of the thesis:
Some links to resources mentioned in the biography:
git clone https://github.com/revng/orchestra cd orchestra/ ./.orchestra/ci/install-dependencies.sh pip3 cache remove orchestra pip3 install --user --force-reinstall https://github.com/revng/revng-orchestra/archive/master.zip orc components orc clone revng orchestra update orc install revng orc shell (orchestra) revng translate ~/git/Emulator/x86/artifact/cc_x86Which produced a message asking me to submit a bug report and include the crash backtrace. I submitted a bug report as issue #345. I hope I have done this correctly.
Then I got the idea that maybe I should execute all the steps in parallel with the emulator to see when it deviates. That might help me locate the bug.
In the past month, I spend some time analyzing the execution of M2 and
in doing so wrote time some notes. I noted that the function type_name
contains a call to functionlookup_type where the first argument is
global_token->s. Which in the file M2-0.M1 is translated
to:
The type of global_token is a pointer to token_list, which is
defined as:
It could be that the calculated offset is incorrect. I would expect it to be 8
or 16. Lets see which offset is used in the function new_token in
which the s record field is allocated and filled. It looks like there
also an offset of 4 is used.
So, maybe there is an error in the copy_string function. It seems to
work correct. (I already added some debug statements, so it seems, I already
checked this.) Studying the assignment statements in new_token, it
seems there might be something wrong with the offsets. Below the code from
the file M2-0.M1 preceded with the matching statemenst from the file
M2-0.c:
The file M2-0.M is produced by process 15, which executes the command:
I modified the emulator program such that it would generate a program for this
process and I spend some time looking at it.
mov_eax, &GLOBAL_global_token
mov_eax,[eax]
# looking up offset
# -> offset calculation
mov_ebx, %4
add_eax,ebx
mov_eax,[eax]
push_eax #_process_expression1
struct token_list
{
struct token_list* next;
union
{
struct token_list* locals;
struct token_list* prev;
};
char* s;
union
{
struct type* type;
char* filename;
};
union
{
struct token_list* arguments;
int depth;
int linenumber;
};
};
lea_eax,[ebp+DWORD] %-16
mov_eax,[eax]
# looking up offset
# -> offset calculation
mov_ebx, %4
add_eax,ebx
push_eax #_common_recursion
Calling calloc
pop_ebx # _common_recursion
mov_[ebx],eax
# current->prev = token;
mov_ebx, %4
add_eax,ebx
push_eax #_common_recursion
mov_eax, &GLOBAL_token
mov_eax,[eax]
pop_ebx # _common_recursion
mov_[ebx],eax
lea_eax,[ebp+DWORD] %-16
mov_eax,[eax]
# current->next = token;
push_eax #_common_recursion
mov_eax, &GLOBAL_token
mov_eax,[eax]
pop_ebx # _common_recursion
mov_[ebx],eax
lea_eax,[ebp+DWORD] %-16
mov_eax,[eax]
# current->linenumber = line;
mov_ebx, %8
add_eax,ebx
push_eax #_common_recursion
mov_eax, &GLOBAL_line
mov_eax,[eax]
pop_ebx # _common_recursion
mov_[ebx],eax
lea_eax,[ebp+DWORD] %-16
mov_eax,[eax]
# current->filename = file;
mov_ebx, %8
add_eax,ebx
push_eax #_common_recursion
mov_eax, &GLOBAL_file
mov_eax,[eax]
pop_ebx # _common_recursion
mov_[ebx],eax
./x86/artifact/cc_x86 ./x86/artifact/M2-0.c ./x86/artifact/M2-0.M1
Friday, January 19, 2024
Amsterdam
Today, I went to Amsterdam. Some things that I had hoped to attend, did not
work out. But I was surprised with other things. I train, There was still some
snow left over in most parts of the country. Even
in Amsterdam, I encountered some slippery spots. In the train I spend some time
reading the book How to Change Your Mind by Michael Pollan. It gave me
some things to think about. It surprises me a little that some people after a
psychedelics trip come to the conclusion that consciousness precedes matter,
while it so clear that the trip was triggered by a chemical compound working on
the brain.
I first went to bookshop Het Martyrium, which used to have a great selection of cheeply priced books. But it looked like the shop was reduced to half of it size and there were no cheaply priced books anymore, From there I walksed to FOAM. Just over the bridge over De Keizersgracht, four people were studying lichens on the stone wall with small magnifying glasses. It might be that they are from the Dutch Bryological and Lichenological Society. At FOAM, I saw the following exhibitions, together with lists of photographs I liked:
Next, I went to De Slegte bookshop. At 14:13, I bought the book Kraftwerk: Future Music from Germany written by Uwe Schütte in English and published by Penguin Books on Wednesday, August 17, 2022, ISBN:9781802060980, for € 8.95. I discovered that the McDonalds at Muntplein was temporary closed. I wanked toward Spui. Every Friday there is an openair bookmarket there. I saw some interesting books but they were a bit oot expensive for my liking. I visited the American Book Center and around three o'clock in the afternoon, I walked to Galerie Ron Mandos. I had understood from several websites that several galleries were having an opening afternoon, starting at 15:00, which was the primary reason for me to travel to Amsterdam. But the gallery was closed. I continued to andriesse & eyck to see the exhibition Woorden Weelde. There I heard that the opening was at five 0'clock and that I was too early. I had a quick look at the works in the exhibition and did not see any works by Peter Struycken. I did see three works by Carel Blotkamp. (Later, I realized that one of those might have been based on a work by Peter Struycken and that that might be the reason he was included in the exhibition. It might also be that I did not look carefull enough.) After a short chat with Zsa-Zsa Eyck and a proomise to return at five, I left again. I visited the bookshop Architectura & Natura. Many interesting books but all quite expensive. I went into a search for a McDonalds. I had a 'Chili Chicken' at the McDonalds at Nieuwedijk 70. From there, I walked to bookshop Scheltema Boekverkopers. I felt that the rasmj department was a little bit more organized. I was getting tired and decided not to return to gallery andriesse & eyck and instead I went to De Bijenkorf to look at the book section there, because I had received a gift card that I could spend there. I did not find anything interesting to buy. I walked over to Julia's where at 17:52, I ordered a medium Penne Pesto Pollo with the voucher that came with the day-trip train ticket that I had bought. (I usually use such a day-trip ticket when it is cheaper than the regular train tickets.) In the train, I continued reading in the book, but at one point (probably when I had to show my ticket), I skipped a lot of pages, which I discover only much later. I also started working on this at my Aspire Acer notebook.