This weekend I made another attempt at some numeric programming. I have been working on a Clojure library named Neanderthal. It can use CUDA, OpenCL or native libraries. Instead of using BLAS and LAPACK for native libraries, it uses the Intel Math Kernel Library.
In order to use the native library, I installed the Intel MKL library. I did have a bit of trouble with the library. This worked:
For some reason, the “export” had to be on the front. I tried without, and I got an error. But I was able to copy and paste the code from the native example here.
I was able to get the code running from the first OpenCL example.
These are some packages I installed to get the OpenCL example to work:
aptitude install ocl-icd-opencl-dev
aptitude install dkms
aptitude install beignet-opencl-icd
I will also look at TensorFlow. There are a few libraries that let you use Clojure.
This week I finally got done with chapter 2 of Programming Kotlin.
IntelliJ IDEA sometimes takes a while to start up; at least it feels like it takes a while. Downloading Kotlin for the first time was a very slow process. So far it is a pretty interesting language. I am still not ready to make Android apps with it. I do think that Kotlin might wind up being the replacement for Java, despite what the Scala crowd thinks. Languages that look like a cat walked across your keyboard have limited appeal.
Anyway, no progress on Scheme or Clojure. My future at my current company is still uncertain, so I might need to get back to Clojure.
Not a whole lot to report.
I am still going slowly through Simply Scheme, and also Programming Kotlin by Stephen Samuel and Stefan Bocutiu.
I tried Kotlin koans, but frankly I don’t learn a language well with koans. I started the book on Kotlin and Android because the local Android meetup covered the first ten chapters at the beginning of the month. But going through that was kind of rough because I don’t know much about Kotlin or Android.
I should probably stick to one thing to make progress. I found out my project at work will be ending soon, so either I have to find a new project or a whole new company.
I have going through backup CDs and DVDs lately. Some of the files were tar files. The names of the tar files had names of my computers as part of them. I have had a lot of computers over the past decade, desktops and laptops, running Linux and Windows.
Here are some of the computer names that I found:
Not a whole lot of news on the programming/technology front this week.
I am trying to clean up my place. I have a box of DVDs and CDs with data back ups, camera pix, git projects and all sorts of stuff on them. An external drive could store all that and take up a lot less space, so I have been copying all the disks to the external drive while binge-watching shows online.
Hopefully more Kotlin progress soon.
I got a book on Android and Kotlin by a guy in Spain named Antonio Leiva. I started going through it. I don’t know too much Kotlin or much about Android, do it is a bit of a hard slog sometimes. Here is his github repo for the book. The Android meetup will have a meeting about it on August 1. I plan on being ready.
I have to learn more about Android. What is an Activity? What is an Adapter? I will have to figure this out.
Here is the Android javadoc.
I think Kotlin will be huge. I think making Kotlin an official Android language will change the JVM language landscape. I have a feeling I will not be doing a lot of Groovy in the future.
When Ceylon came out, I did not see what the point of it was. It did not fill a niche that was not filled by Java, Groovy Clojure or Scala. So another JVM language gaining momentum is a bit surprising.
I took a couple of weeks off from work, so I did not get much done over the past two weeks.
At my company, “vacations” is now “PTO”: paid time off. I have noticed a few people I know at other companies who also use this terminology. When did “vacation” get replaced with a corporate term?
Anyway, I did go to the local Processing meetup. I did not stay the whole time. I noticed I did not have my wallet, so I left early to go look for it. It turns out I just left it at home.
I did a bit with Simply Scheme. I am now on chapter 6. I am wondering if/when I will get the “Lisp enlightenment” that will make me better in all things CS. It looks like there are things you can do in Scheme and Lisp that are just impossible in other languages. We shall see.
I did spend some time on the Groovy Email Server. I am keeping track of the ip addresses and host names of all incoming requests. I might be able to put this to good use someday.
Not a whole lot to report this week. Still working on Simply Scheme. Perhaps I should call it Slowly Scheme.
I decided that this website could use a bit sprucing up, perhaps some pictures. So I am looking at a Java app called Processing that does visual stuff. I think some people use it as a CAD tool, while other people use it to make generative art (abstract art, patterns, fractals, etc).
Not much going on. I am still working slowly through Simply Scheme. I am at a point where they want you to diagram some functions. Like diagramming sentences in junior high.
There was an article on Bloomberg about quantum computing (Hacker News page here). That started me doing a lot of surfing about quantum computing. IBM has the IBM Quantum Experience, which allows you to try quantum programs on their quantum cloud.
There is a wiki about QC called Quantiki. One page is a page with a list of simulators. One of them is a page called Quantum Playground. I found a couple in Java: one by a guy who goes by the name ardeleanasm, and one called JavaQuil. JavaQuil is a port of pyQuil, an API for a project called Forest, which is another QC cloud. It is run by a company called Rigetti Computing.
Not too much to report. I am getting back into Simply Scheme again. I guess my desire for enlightenment got the upper hand.
I ran into the same issue with the Kotlin koans as I did with 4Clojure: I am just going through the API docs searching for something that looks like it might be the answer. That to me gets really frustrating. I found a site by a guy named Antonio Leiva who will send 30 free lessons to you via email about Kotlin. I will let those pile up and go through those. Kotlin isn’t like Scheme’s R7RS, where you can list all the functions on one page.