I write, therefore I am
With this variation on a famous statement by the philosopher Descartes, I would like to express that writing about what happens in my life is important to me.
The Bite in the AppleI finished reading the book The Bite in the Apple by Christann Brennan, which I started reading on February 17. She was the first girlfriend of Steve Jobs and the mother of his first child, their daughter Lisa Brennan-Jobs. A very interesting book in which Brennan paints a fairly 'dark' image of Jobs. Yet it seems that she has not written the book from resentment, because she does it in a very honest way in which she discussed both the positive and the negative aspects of their relationship and also taking a step back to evaluate everything with her current understanding. In fact, she sets the Japanese Zen priest Kobun in a bad light and she describes him as one of the most influential persons with respect to the (lack of) character development of Jobs in his younger years.
Removing _T macroYesterday evening, I wrote a small program to remove the _T macro from C++ source files. In Microsoft Visual Studio the _T macro is used to make string and character literals compatible with Unicode support of Microsoft. Microsoft is using UTF-16 for encoding Unicode strings, while many other platforms are using UTF-8 for encoding. UTF-8 is believed to be better than UTF-16, which was developed from an earlier fixed-width 16-bit encoding known as UCS-2 that Microsoft used for its first implementation of Unicode, when there was still the idea that 16 bits was enough to hold all possible code points. But since than Unicode has grown and is still growing beyond that range. Yesterday, I have investigated whether it would be possible to follow the UTF-8 Everywhere approach. The idea is to make our String class use the UTF-8 encoding and CString use the UTF-16 encoding (by using the _UNICODE define). I have extended our String class with some constructors and methods for accepting UTF-16 based values and introduced a StringToLPTCSTR class for converting UTF-8 String values to UTF-16 encoding. With some tricks it was possible to make the code compile with and without the _UNICODE define, which would allow a gradual transition of the code base to full Unicode support. In anticipation of a Unicode implementation with a String class using UTF-16 encoding, we had been using the _T macro for strings a lot. But with a String class using a UTF-8 encoding, you should not use it. Thinking that it was not much work removing the _T macro, I decided to remove it manually, which proved to be more work than I had expected for the small part of the code base that I used for testing this approach. For removing it from the rest of the code, I thought it would be a good idea to write a small program, which removes the macro from all the files listed on the command line. Today, I used the program, and adapted it slightly such that it does not write files that do not contain the macro. Also switched to binary reading the files to preserve possible alternative line endings. magnolia plant, lost all it leaves and everything that was left was an empty twig. I was wondering whether I should put the plant in the garden and let it experience some cold, before it would start grow again, but the last weeks I noticed some small green spots, and now this morning, a green bud, not bigger than a centimeter. Appearantly, the plant has noticed that the sun is shining more, and that spring is coming. I took a close-up picture that is displayed on the right.
Busy SaturdayThis morning at 11:35:52, I bought the book Infinite Jest van David Foster Wallace, ISBN:978031606652, from bookshop Broekhuis for 16.99. I had ordered the book after reading the Dutch novel Ik ben Maan (I am Moon) by Maan Leo, in which this novel plays an important role. I am not sure when I will read this novel, even not whether I will ever read it.
In the afternoon, we spend some time pruning the willow tree in our backgarden. We also shorted some of the large branches. We took a break when it started raining. We also saw some big snow flakes falling from the sky, which did not stay on the ground.
20 yearsToday, it is exactly 20 years ago, on Monday, February 20, 1995, that I started with my online diary. This could well be one of the longest running online diaries. I was surely not one of the first who started with it, but I get the impression that many people have stopped or moved to another medium. According to the History of blogging wikipedia page, Dave Winer claims that his Scripting News is "the longest running Web Log in the internet." He started in November 1994. I understand that he has written a lot and is a very influential person. I could not find an archive of his writings on his site and it seems that he does not write much about personal issues. It also seems that the format of his blog has changed over time. Mine has stayed pretty much the same. The only big change that I made is that my home pages now contains the most recent items with the most recent on top. My Dutch home page does not contain all items, but only the one that I think are most interesting.
Chinese New YearToday is the first day of the year of the goat according to the Chinese calendar. The spring festival has begun.
Jupiter AscendingThis evening, I went to see the movie Jupiter Ascending. I understand that this movie does not get a very high rating, but I did like it. I got totally absorbed by it. And I think that is the only measure of how good a movie is according to you. Sometimes, it is indeed a little bit hard to follow, but that is not bad. And some of the action scenes were a bit long, and unrealistic. Making a big jump and landing without breaking a bone is believable if it happens once, not ten times within a few minutes.
BooksAt 11:43:13, I bought the book The Bite in the Apple: A Memoir of My Life with Steve Jobs by Chrisann Brennan, ISBN:9781250048547, from bookshop Broekhuis for € 15.50. Today, I also received Understanding the World: The Atlas of Infographics by Sandra Rendgen and Julius Wiedemann, ISBN:9783836548830, which I had ordered from Taschen for € 49.99 (including delivary). The books weighs 3.7 Kg.
Struycken & PanamarenkoI received a copy of Struycken & Panamarenko, which I bought through the internet for (only) € 10.00. A large part of the book is taken up by an exchange between Panamarento and Walter Lewin. Only a few pages are about Peter Struycken.
The Imitation GameThis evening, I went to see the movie The Imitation Game, which is dramatization of the life of Alan Turing. It was put together in quite a clever way, jumping between three significant periods in the life of Turing. And I also believe that it gave a rather good portrait of his personality. I only question the necessity of diverting the script so far from reality to make it interesting for the general public. Maybe it was a little too over dramatized.
SpockWhen I watched the original Star Trek series, which was shown in the Netherlands around 1973, I was always fascinated by Spock, the half-human, half-vulcan character who relied on logical thinking and surpressed his emotions. I saw him as a role model.
While at the university, I was a little surprised being told that I am some being driven by his emotions, because I am not a sentimental person and often find it difficult to express emotions. But when I thought about it more, I realized that he was right, that I did have very strong emotions, but that I used my reason keep my emotions at bay. I spend a lot of time trying to understand my emotions by analyzing and writing about them in my diary.
In de Star Trek film from 2009, Spocks hears his father say to him: "Emotions run deep within our race. In many ways more deeply than in humans. Logic offers a serenity humans seldom experience. The control of feelings so that they do not control you."
Yesterday, I read about some research that showed how difficult it is to convince people with scientific facts. This morning, I realized that I often try to convince people with facts. Various people have told me that I should not focus to much on fact but first try to build a good report with someone. I know that this is not very natural for me. I find it kind of dishonest to convince people by playing their emotions. People have also told me that sometimes I am too direct. I really try to express my ideas and opinions with more care, but it still happens that afterwards I realize that I have failed.
I guess that maybe the problem is that I am too honest and too open than is socially acceptable. Is that also a form of autism, that you are able to think about how other think and feel, but that you trouble knowing how to act or respond in certain situations?
When I thought about this all, I came to the strange conclusion that with respect to my natural inclination to control my strong emotions and to put an emphasis on facts and logic when interacting with people, I am maybe more like Spock (when compared to others) than I had ever dreamed to be.
Merging moves in treesThe kind of trees we are dealing with have a single root node and nodes are placed in levels depending on their 'distance' from the root. It could also be said that it is a tree with a parent-child relationship. (A concreet example of this kind of tree is found in a directory structure with folders and files, where both folders and files represent nodes in the tree, the files being leave nodes.) When a single user is making changes to such a tree by each time moving a single node to a new 'parent' where the parent is not one of its own 'descendants', the tree will always remain a tree with nodes placed in levels (possibly different level for some of the nodes each time a node is moved). If a user would be allowed to move two nodes with the above restriction, then it is possible to break the organization of the tree, where it breaks in two part, with one part containing the root node and still being proper and the other part being cyclic, where a chain of nodes are all each owns descendants.
If two users in isolation move nodes around, such that the tree remains well organized, it is not always possible to merge their changes without the tree falling apart in two or more pieces. Of course, there is already a problem when both users move the same node to a different parent. Combining the moves of two users is similar to one user being allowed to make two moves at the same time. The clasical example is tree, using the prefix with children between brackets notation: A(B(C),D(E)), where one user moves D under C, resulting in the tree A(B(C(D(E)))), and the other user moves B under E, resulting in the tree A(D(E(B(C)))). When both moves are combined (merged), this results in a lonely A node and an cycle consisting of B, C, D, and E.
There is no additional complexity in merging the moves of more than two users. In case there is a problem with merging the results of more than two users, there is always a minimal set of users whoes moves cannot be merged. Minimal in the sense that there is no subset of this set which cannot be merged. Because of this one could divide the users of the minimal set in two (non-empty) groups that can be merged. Merging the combined moves of these two groups is similar to the two user problem. It should be noted that it is possible that a large group of user could be combined without problems. Taking the above example, lets assume that there is a third user who moves E to A resulting in the tree A(B(C),D,E). Combining the moves of these tree users results in the tree A(E(B(C(D)))). There are good reasons to require that the moves of a set of users can only merged if any subset (of at least two users) can be merged into a proper tree. One reason being that if this requirement is stated, the moves of the users can be pairwise merged in any order.
The design of a locking mechanism to enforce that moves being made by a group of users can always be merged in any possible order, is far from trivial, especially if it needs to be efficient in time and space. There is a whole range of fine-grained to coarse-grained locking mechanism. One should take into the likelihood of multiple users applying moves to the same part of the tree. It is useless to implement an expensive fine-grained locking mechanism if the likelihood is low.
SnowThis morning, there fell about 6 cm (2.4 inch) of snow. In the afternoon, the sun started to shine and it the snow started to melt.
Book saleAt bookshop Broekhuis they are having a sale with 50% off for a large collection of books. I also looked at the large collection of second hand books that they acquired. At 17:24:01, I bought the book Logbook 1991-1992 by Harry Mulisch, ISBN:9789023428367, for € 9.45, which contains the diary of Harry Mulisch that he wrote when working on his novel De ontdekking van de hemel (The discovery of Heaven).
The Man Who Knew Too MuchI finished reading The Man Who Knew Too Much, an biography of Alan Turing, by David Leavitt. I bought this book some years ago. The prime motivation to read it, is that I had read that the movie The Imitation Game has some historical inaccuracies, and I wanted to know these before I went to see the movie. My first remark is that editors should consult a mathematician with respect to mathematical formuleas as the book contains a number of inaccurately typeset mathematical formuleas. These are some very basic formuleas: like using a double quote for the superscript 11, and using a subscript when a superscript should be used. This biography suffers from the fact that there periods in the life of Turing where there is not much known about him, that are filled with stories about other people, event and such. The book also explains some of Turings papers in great details. But these are almost unavoidable, and thus expected in such a biography. I did have a problem with some of the suggestions that the author made about how Turing could have experienced what happened in his life. I found some of these too suggestive, as if the author wanted to tie together everything in the life of Turing into a single process, as if that is even possible in a normal life of a person.
Trip to China 2010
-- contact -- Frans
My life as a hacker
The Art of Programming
HTML to LaTeX
eXtreme Programming Hamilton cycles