Posts

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

Image
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

Image
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

Image
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

Image
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

Image
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

Dronies

Image
What do you do when you suddenly have two functional, flying drones again (a Phantom 2 vision+ and a Mavic Pro)? You fly one, of course, and ask your daughter to fly the other one. Then you take "dronies"!

How Much Land Does a Man Need?

While updating links on my website to content that I also maintain, I had to think of a variant on the title of Tolstoy's brilliant short story: How much Internet Presence does a man need? Donald Knuth writes that he has been a happy man since 1990 , when he no longer had an email address. Would the same apply to webpages? I am not ready to find out yet! https://www.aartbik.com/ https://aartbik.blogspot.com/ https://twitter.com/AartBik https://facebook.com/ajcbik https://www.youtube.com/user/AartBik https://www.linkedin.com/in/aartbik https://amazon.com/author/aartbik https://github.com/aartbik https://play.google.com/store/apps/developer?id=Aart+Bik

50th Anniversary!

Image
Since the Eagle landed on the moon shortly after I entered this world, it seemed only fitting to celebrate both these anniversaries with LEGO's Nasa Apollo 11 Lunar Lander building set. Can't wait to start building this weekend! The quote on the box is a bit surprising. Everybody knows this should read "That's one small step for [a] man, a giant leap for mankind" (make sure the pronounce the square brackets properly)!

Chess for Android: UCI Engine Options

Image
The UCI engine setup dialog in Chess for Android was developed a long time ago when there were not many chess engines available for Android. As a result, I opted for a simple dialog that featured a few, commonly used UCI engine options only (such as hash table size, number of threads, endgame tablebases). However, the options that I picked almost ten years ago no longer serve the wide variety in options of the many chess engines available for Android. Therefore, I decided to re-implement the UCI engine setup and do what the UCI protocol specification actually intended: the GUI should parse all options and build a dialog that allows the user to change them. For engines with only a few options, this yields a concise dialog, as illustrated below with BikJump v1.8. For engines with many options, this yields a more elaborate, scrollable dialog, as illustrated below for Leela Chess Zero. In any case, however, the new implementation gives the user full access to all options! Expect