Thanks to Faraz and Vasanth for inviting me to their " What can you tell me about software? " podcast. We chatted nicely about compilers, LLVM, MLIR, fuzz testing, and even some #chess! To listen to the podcast, tune in to either  Spotify Podcast ,  Apple Podcast , or Google Podcast .

Intel Advanced Matrix extensions (AMX)

I guess you can never take the Intel out of the boy even if the boy is long out of Intel. A few months back, I had lots of fun making sure MLIR's code generation maps to efficient AVX512 instructions. This week, I thoroughly enjoyed designing and implementing a MLIR dialect for Intel Advanced Matrix extensions (AMX) with integration tests that run correctly on a Sapphire Rapids emulator. Staring at some x86 assembly instructions, it does not get much better than that....

New Features During Thanksgiving Break

Work has been a lot of fun, but very busy. As a result, I had not worked on my Android games (or other hobbies) for a very long time. This Thanksgiving break, therefore, I decided to take a few extra days off, and add some long overdue new support in my games. For Checkers for Android, I finalized the support to connect an electronic board (just as was already done in the chess app), in particular for Certabo. The Certabo boards , mainly intended for chess, ship with 34 identifying chips that can be attached to any piece set, typically a full chess set with two additional queens). However, due to the flexibility of the chips, these boards can also be used for other 8x8 games, such as American checkers (enabling a full checkers set with ten additional kings). Version 3.1 brings this support to Google Play . For Chess for Android, I added timer support for the DGT3000 chess clock . Up to recently, I only used the clock to prompt the most recently played move (with a beep to alert the pla

Galaxy Watch3 vs. GT 2 Pro

For my first smartwatch, I couldn't decide between the Samsung Galaxy Watch3 and the Huawei Watch GT 2 Pro, so impulsively I bought both, which puts me in a good position to make some comparisons. Both watches look beautiful and provide excellent health features, like tracking heart rate and SpO2. The Galaxy can even record an ECG and blood pressure, although (at the moment?) this only works when paired with a Samsung phone. The rotating bezel control of the Galaxy provides pleasant navigation through the menus. Both watches have wireless charging. The battery life of the GT 2 Pro is amazing! Both watches provide solid default apps, mainly focused around fitness tracking. The GT 2 Pro can also show the rising times of the moon and sun, tidal information, air pressure, and moon phase. The Night Wish face nicely displays the moon phase on the watch together with a star map (I still have to figure out if that rotates though). The Galaxy provides many third party apps through the Galax

2020 ACM SIGMOD Test of Time Award

Our paper "Pregel: A System for Large-Scale Graph Processing" (authors Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, and Grzegorz Czajkowski) won the 2020 ACM SIGMOD Test of Time Award for its impact over the last decade. I am proud of having been part of that team, and this brings back good memories.

Machine Learning: third book

I am deviating a bit from the originally planned order of reading books as well as from the topic of TensorFlow, but I picked up the next book "Python - Machine Learning" by Wei-Meng Lee anyway from the local bookstore, since it presents some basic technologies that are relevant to ML. As the introduction states, the book takes a gentle approach to the ML topic, but it provides an interesting read nevertheless. First some fundamental Python libraries are presented: NumPy (multi-dimensional arrays), Pandas (Panel Data Analysis), matplotlib/Searborn (data visualization), and Scikit-learn (ML algorithms for classification, regression, clustering, decision tree, etc.). The book provides resources for data sets, discusses data cleaning, and goes over several ML examples for supervised learning (one regression chapter and three classification chapters) and unsupervised learning (one clustering chapter). The book finishes with a presentation of the Azure Machine Learning Studio (

Tensorflow: second book

A while back, I posted on my interest in Tensorflow , and planned a few brief follow-up impressions of some books I bought. This was soon followed by a first posting on  "Tensorflow for Deep Learning"  with a  follow-up on a CNN for a digit recognition example  from that book. After that, the distractions of life and work took over, but now I am ready to continue these postings. Since then, I even bought a few new books! I am really enthusiastic about the second book, "Learning TensorFlow" by Tom Hope, Yehezkel S. Resheff, and Itay Lieder. Unlike the first book, which was informative but a bit sparse on details, this book explains the details of constructing and running a TensorFlow computation graph really well. After the first three chapters, I was quite comfortable with the fundamental basic blocks of TensorFlow and experimenting with some different setups. What was particularly helpful was showing a toy graph first to explain underlying principles before m

Fast Queen Promotion

Many users of Chess for Android use the combination of an electronic chessboard (Certabo, DGT, or Millennium) and online play, where making moves quickly can make the difference between winning or losing. In the past, I have made improvements that enabled quicker castling and taking en-passant. However, one request for quicker promotions was still pending. When using the electronic chessboard, there were two ways to promote a pawn. One way is to make the move with the pawn first, then use the popup window in the GUI to select the promotion piece, and finally replace the pawn with the piece on the electronic board. The second way is to remove the promoting pawn from the electronic board first, and then place the promotion piece on the board thereafter. Either way registers the promotion correctly, both for regular or minor promotion. However, during rapid games, even this simple procedure may be a bit cumbersome. Therefore I added an extra option to Chess for Android. While s

Certabo Limited Edition Model

Certabo launched a limited edition tournament model electronic chess board that celebrates the 10th anniversary of Chess for Android . The graphics were beautifully designed by Bryan Whitby. You can read more about the background in this interview with P ietro Mandurino , the CEO of Certabo (in Italian).

Opening Top and Bottom Borders on the Commodore 64

Opening up the top and bottom border is of course a trick any seasoned C64 demo writer knows. But anyone who started with BASIC before switching to 6510 probably remembers how much fun it was to get that extra space for sprites and even some simple graphics. So this posting is not telling anything new to most of you. I am just reminiscing my own youthful awe when I made the switch. The program below shows how to do this. Set up a raster interrupt right before the bottom border start. Then toggle between 24 and 25 lines of text. This tricks the VIC into forgetting to turn on the border. The opened border can be used to display sprites. By manipulating the last address of the VIC page ($3fff by default), you can even get some interesting graphics. For example, Pasi Ojala posted an article Opening the Borders with some truly amazing effects!  Of course, opening up the side borders is the next challenge! ; little demo to open up the border ; for win2c64 by Aart