Imagine that you grew up in a very constrained and controlled laboratory environment. Imagine that your expert science professors taught you everything that can be known about mathematics and physics of sound waves that travel by air pressure, or through other material; you know all about frequencies, their relationships, properties of various materials, and can easily derive new theorems from what you already know. Now, I know it will be very difficult, but try to imagine that you also never heard any music, any musical instrument at all. Imagine all you heard was human language conversation (no singing or humming at all), and natural sounds such as a knock on the door, or some truck engine making a noise, but nothing else. No music.

And now, imagine that for the first time in your life, you hear sounds coming from “Qualia” by Gökhan Goralı. Surely there will be some radical changes in your brain, in your neural circuitry. But will you have gained “new knowledge”? Didn’t you already know all about the math and physics of sound, the relationship between frequencies, how some of them are called ‘musical notes’? The musical album at hand is a digital one, so it would be straightforward to describe all mathematical and physical aspects of bits in those MP3 files, frequencies and their durations, etc. When you hear music for the first time, when you year “Qualia” for the first time, what is that you learn for the first time? What does it mean to say that the extra experience you have is ‘qualia‘?

What is that elusive state of mind? Do two people who listen to the same “Qualia” have the same state of neural configuration? Is it comparable, or is ‘qualia’ simply what is beyond comparison? There are no easy answers, there are only difficult questions.

In other words, there is only one long journey, the biggest experiment of all, going for millions of years. And this brand new album is an experiment within the grand experiment. With its recursive loops, Pure Data patches, soundscapes, guitars, bass lines and drums… with the dedication of countless hours by spirits in pursuit of the unknown, Qualia leads to many states of mind. Originating from one of the most ancient cities in the world, it might remind you of a historical future in which you might start to remember things you never knew. It deserves listening and re-listening, going deeper in every iteration, and maybe coming up with a different experience each time.

It is difficult to do justice to “Qualia” in a few primitive sentences, after all, the title itself hints at the phenomenon of going beyond a reductionist approach. If you believe there’s something special to being a human, then you owe yourself to listen to this great album.

Another nice thing, external to this album, is the fact that whatever you pay for it will go to the World Bicycle Relief & Eşpedal, so that this great artistic experience will change not only your state of mind, but also the life of a person, and in a very positive way.

If you are curious about the background to this album, you can read an interview here in Turkish (or an automatic English translation), and maybe watch Ex Machina. Do you think a robot, an Artificial General Intelligence, would experience this album the same way a human would do? Think about this as you listen to the ‘hard’ and ‘soft’ tunes of “Qualia”.

Recently I’ve been studying a topic using a book, and at the end of each chapter there are quizzes of 20-25 questions. My method was to open a text buffer in Emacs, and vertically note down the question number, my answers, and after finishing this, go to the correct answer list, and mark correct answers with Y, and wrong ones with N:

Y 1- A,B,C
Y 2- C
N 3- D
N 4- C
Y 5- A
Y 6- B,C,D
Y 7- B

That was all fine, but I found myself counting the number of correct answers, and calculate my score in terms of percentage manually. I could of course quickly run the `M-x count-matches` (or `how-many`) to see how many correct / wrong answers I had, but doing this more than a few tests seemed to become tedious. Therefore, Emacs Lisp to the rescue!

With this simple Emacs Lisp function, assigned to F12 function key, I can now simply hit F12 and see my score percentage in Emacs:

“Your test score percentage: 71.42857142857143”

There are of course alternative methods to solve this straightforward problem, e.g. you can run some shell scripts on your Emacs (or VIM) buffer, or on a simple text file. But I like this solution being self-contained in Emacs, as well as the fact that it’ll continue to run as intended 30 years from now, in a newer Emacs version probably. This, and the fact that, my preferred tool for dealing with textual data gives me the flexibility to program it any way I want. It might have its drawbacks, it might be showing its age in its architecture, there are newer, shiny tools, there are specialized IDEs for various programming languages I use, but all of these notwithstanding, I still like to think it’s a beautiful thing that an editor released when I was born, that helped me with many tasks for decades, will still be with me for decades to come.

My relationship with the Haskell programming language, my efforts to learn it had its ups and downs throughout the years. According to my memory and the archives of my blog, my first attempts had been around 2005 – 2006, more than 12 years ago. Back then, apart from a few books written by university professors, and some Wiki-based books, I couldn’t find much high quality material for beginners. Therefore, my efforts didn’t last very long. A few years later, I heard the news about a new book, “Real World Haskell” being written. I was excited once again, I even made a few comments here and there as the book was being written. Unfortunately, life happened, and I couldn’t spend much time on that nice book, too. Fast forward to the end of 2015, and I was working at a company in Ghent, Belgium where there were some Haskell experts, trying out things in an industrial storage system development environment. The teams that I was part of had nothing to do with Haskell though, my daily job was almost always about Python, Bash, ActionScript, Java, and some Scala. Nevertheless, being in such an environment rekindled my curiosity, and I decided to look around to see if there was some new Haskell books targeted at people who didn’t use this language before. Luckily, I’ve heard about the book “Haskell Programming from First Principles“, and I decided to give it a try. Therefore I bought the book, and started to read and study it in the beginning of 2016. Since Haskell was not at all used in my daily job, I could study the book only in my spare time, therefore it took me about 1 year to finish the book, doing most of the exercises. Read the rest of this entry »

The 80. edition of Antwerp Book Fair (Boekenbeurs) has finished recently. Shortly after that, another book fair, 35. Istanbul Book Fair took place. I was curious to compare the number of visitors, and especially the percentage of book fair visitors by taking the population of the city into account.

In other words, 3.7% of Istanbul visited their book fair, whereas 34% of Antwerp population visited their book fair. If 34% of Istanbul’s population visited the book fair, that would make ~ 5.1 million people in 9 days.

This picture tells us something about literacy and interest in books, but of course we should always ask the question: how representative such a crude statistic is? Another interesting fact is that Istanbul makes up about 20% of Turkey’s population, whereas Antwerp makes up about 4.5% of Belgium’s population. (If we want to compare Turkey to a country with similar population and its most populated city: Germany is close to Turkey with its 80 million people, and its most populated city, Berlin, is home to 3.4 million people. In other words, Germany’s most populated city makes up only 4.25% of the Germany’s population.)

When it comes to dealing with text data, regular expressions are the bread and butter of data processing, as well as programming, most of the time. Hardly a day or two passes before you use grep or a similar tool. Until recently, I thought the field of regular expressions and related tools were very useful, boring, and didn’t present any innovations. It turns out that I was wrong!

ICGrep uses a new, parallel bitstream technology, developed Dr. Robert D. Cameron at Simon Fraser University. It claims to be super fast for many text search and processing tasks. ICGrep is available for download from http://www.icgrep.com/downloads.htm as a binary executable for OS X / MacOS. Its source code is also available if you want to build it for your operating system.

There are good resources on the web that shows how you can decrease the Maven build times of Java projects, but since I couldn’t find the following information in most of them, I wanted to note this down for future reference. One of the simplest things you can do to decrease the Maven build time is to add the following to your command line:

Turkish Mode for Emacs, developed by Deniz Yüret, is now available as a package via MELPA. This is for people trying to type Turkish documents on a U.S. keyboard using Emacs. The program provides a `turkish-mode` in which the correct Turkish accents are added to the ASCII version of the last word typed each time the user hits space. If you are using a recent stable version of Emacs that lets you use the Emacs package manager, and you’ve added MELPA as a repository, installing it is as easy as running:

M-x package-install turkish

and then putting the following line in your init file:

(require 'turkish)

Once you have done that, in any Emacs session you can toggle the Turkish mode