In the past couple of days I hacked together a small Python script, which searches through EMSL basis set exchange library of Gaussian basis sets on the commandline.
Unlike the webinterface it allows to use grep-like regular expressions to search the names and descriptions of the basis sets. Of course limiting the selection to those basis sets which have definitions for a specific subset of elements is possible as well. All matching basis sets can be downloaded at once. Right now only downloading the basis set files in Gaussian94 format is implemented, however.
Last year I taught a course about bash scripting, during which I briefly touched on the scripting language awk. Some of the attending people wanted to hear more about this, so I was asked by my graduate school to prepare a short block course on awk programming for this year. The course will be running from 15th till 17th August 2016 and registration is now open. You can find an outline and further information on the "Introduction to awk" course page. If you cannot make the course in person, do not worry: All course material will be published both on the course website and on github afterwards.
Last Thursday, I once gave another short talk at the Heidelberg Chaostreff NoName e.V. This time I talked about writing tests in C++ using the testing libraries rapidcheck and Catch.
In the talk I presented some ideas how to incorporate property-based testing into test suites for C++ programs. The idea of property-based testing originates from the Haskell library QuickCheck, which tries to use properties of the input data and of properties of the output data in order to generate random test cases for a code unit. So instead of testing a piece of code with just a small number of static tests, which are the same for each run of the test suite, we test with randomly seeded data. Additionally, if a test fails, QuickCheck/rapidcheck automatically simplifies the test case in order to find the simplest input, which yields a failing test. This of cause eases finding the underlying bug massively.
Since this was our first Treff in the new Mathematikon building, the University just opened recently, we had a few technical difficulties with our setup. As a result there is no recording of my talk available this time, unfortunately. The example code I used during the presentation, however, is available on github. It contains a couple of buggy classes and functions and a Catch based test program, which can be used to find these bugs.
Last week I went to the annual Symposium on Theoretical Chemistry. This time the 51th STC took place from the 20th till the 24th of September in Potsdam.
Unlike last year, where the conference business was all new to me, this year it was more like returning to a place with a familiar atmosphere and many familiar faces. Whilst the conference surely was again a great opportunity to present my work and to learn about theoretical chemistry in the lectures, this time it had the additional aspect of catching up with the people I already met last year. Most of all I enjoyed the poster sessions this year, probably because of the many discussions I had with other researchers and PhD students about their recent advances.
Concerning our project we still were not able to obtain noteworthy results with our current implementation of finite-element Hartree-Fock (see Poster attached below). This is mainly due to the extreme memory requirements the calculation of the Hartree-Fock exchange matrix imposes on the program: Right now we store this whole beast in memory and hence get quadratic scaling with respect to the number of finite elements in the amount of memory we require. In other words even for extremely small test cases we need gigabytes of memory to achieve only very inadequate accuracy.
Together with James Avery, who visited us for a few days in July, we recently managed to come up with a new scheme for implementing Hartree-Fock exchange within the finite-element method. This looks very promising, since it decreases both the memory as well as the computational cost to linear scaling. Right now we struggle with the implementation, however. In November I will visit James in Kopenhagen for 3 weeks. If all goes well we will hopefully overcome these problems and work out a good structure for a FE-HF program, that incorporates everything we learned so far.
The week before my bash scripting course I gave another short talk for the weekly meeting of the Heidelberg Chaostreff NoName e.V. Unlike last time the talk was not concerned with a traditional "Hacker" topic, but much rather I tried to give a brief introduction into my own research field.
Of cause 15 to 20 minutes are not enough to go deep into finite-element Hartree-Fock, so I ended up giving a small introduction into electronic structure theory instead. Questions which were addressed:
Why is electronic structure theory useful? What kind of information can I retrieve using it?
What are the fundamental physical and chemical concepts that lead to electronic structure theory?
What kind of approximations and physical ideas do we need to do in order to get to a method which is used in practice, e.g. the so-called Hartree-Fock method?
The talk was held in German and a recording is available (see below). Please be aware, however, that not everything I mention is, scientifically speaking, correct.
Currently I am busy preparing the lecture notes and the exercises for the advanced bash scripting course that I will teach for PhD students of my graduate school. The course will be a block course running from 24th till 28th August and there are still some spaces. So in case you are interested in learning how to write shell scripts in a structured way, you will find more information here. You can obtain the course material either from this page or from my github account mfherbst.
A while ago I setup a github account in order to contribute a BugFix to the dealii Finite Element software I am using for my PhD project. Since then not very much had happened to the account until I decided to add the repository update-scripts in which I plan to maintain the scripts I use to update some 3rd party software on my LinuX machines.
Currently not very many applications are supported. Pretty much only Tor and the Tor Browser, both applications from torproject.org. Since both are updated fairly often, the packages of my distribution (Debian) are not recent enough. Especially the Tor Browser is installed on pretty much all my machines: It is really easy to use and perfect if one just needs to do some quick checks on the internet. So I decided to develop scripts that automatically download, cryptographically check and install the current Tor Browser to the user's HOME directory. If you are interested to use or contribute to this project, feel free to download it below or visit the project page on github.
About two weeks ago, on Friday the 13th of March, I was invited back to the Chemistry Department at the University of Cambridge. As part of their Theoretical Chemistry Informal Seminar talk series I was asked to give a short talk (Abstract) about my current research. Needless to say that I am very grateful that Lucy Colwell and the other organisers provided me with this great opportunity to share some of the insights we got in the past year. Over afternoon tea I also had the chance to catch up with some familiar faces from the theory section and meet some new researchers as well. With great pleasure I realised that very little has changed in Cambridge when it comes to the open and welcoming atmosphere that I enjoyed so much during my undergrad days.
The first part of my presentation is very similar to the one I prepared for our group seminar in Kleinwalsertal. In the section titled "Building the matrices" I describe our approach to build the relevant stiffness and mass matrices and what difficulties arise. At this point we cannot really provide acceptable solutions to these problems, however.
As announced on our group website, Dr. Michael Wormit, passed away in a tragic accident a week ago Saturday, the 14th of March. Michael's loss leaves a gap behind that cannot be closed — both on a scientific and on a personal level.
I myself am thankful and proud that I had the chance to work with this fine man for the past year and a bit. I do not think we would have made as much progress in our research without his outstanding intuition and expertise. His advice and the many spontaneous discussions we had in front of our whiteboard in the evenings will be missed most of all. In these sad hours my thoughts are with his wife and his family.
Last Thursday I gave a talk (in German) in our local Chaostreff in Heidelberg — the NoName e.V. The main topic was to introduce the various cryptographic algorithms used in modern cryptography and to give practical advice how to improve the default configuration even further. The talk mainly focuses on openssl ciphers and TLS connections as well as the settings applicable to the openssh server and client applications.
As usual you can find the slides attached below. Furthermore thanks to the camera, which NoName e.V. bought some time ago, there is a recording of the talk available:
In my talk I got the purpose of MAC codes a little confused. I argue that a MAC is required in order to prevent a plaintext recovery attack by using forged ciphertext. That is not quite true, however. The main purpose is simply to provide integrity for the connection. A good discussion why it is nevertheless a good idea to use Encrypt-then-MAC can be found on StackExchange Cryptography.