Posted on November 19, 2015
(Last modified on June 9, 2026)
|
Henry Schreiner
This is a simple explanation of the asyncio module and new supporting language
features in Python 3.5. Even though the new keywords async and await are new
language constructs, they are mostly1 useless without an event loop, and that
is supplied in the standard library as asyncio. Also, you need awaitable
functions, which are only supplied by asyncio (or in the growing set of async
libraries, like asyncssh, quamash etc.).
Posted on November 19, 2015
(Last modified on June 9, 2026)
|
Henry Schreiner
This is a simple example to show how Asyncio works without using Asyncio itself,
instead using a basic and poorly written event loop. This is only meant to give
a flavor of what Asyncio does behind the curtains. I’m avoiding most details of
the library design, like callbacks, just to keep this simple. Since this is
written as an illustration, rather than real code, I’m going to dispense with
trying to keep it 2.7 compatible.
Posted on October 30, 2015
(Last modified on June 9, 2026)
|
Henry Schreiner
There is a package for making Feynman diagrams in LaTeX. Unfortunately, it is
old and dvi latex only. If you are using pdflatex or lualatex, as you should
be, it does not work. Even in regular LaTeX, it’s a bit of a pain. Why is there
not a new package for pdflatex? Turns out, you don’t need one. Due to the
powerful drawing library Tikz, you can create any diagram easily, and can
customize it completely. For example:
Posted on October 19, 2015
(Last modified on May 22, 2026)
|
Henry Schreiner
I realized that CRY did not have a CMake based install option, so including it
in a GEANT4 cmake project might not be obvious. This is how you would do it in
your CMakeLists.txt:
Posted on October 7, 2015
(Last modified on June 9, 2026)
|
Henry Schreiner
Note: There is a better way to do this described
here.
If you’ve ever tried apt-get or brew to try to install gtest, you are
probably familiar with the fact that gtest is not “recommended” for global
install on your system. As an alternative, the recommendation is that you make
it part of your project. The process for making gtest part of your project,
however, is not well documented, at least for modern git projects. What follows
is the procedure I used to do so.
Posted on August 6, 2015
(Last modified on June 9, 2026)
|
Henry Schreiner
This is a quick tutorial over the basics of what metaclasses do.
The Metaclass
Metaclasses, while seemingly a complex topic, really just do something very
simple. They control what happens when you have code that turns into a class
object. The normal place they are executed is right after the class statement.
Let’s see that in action by using print as our metaclass.
Posted on July 29, 2015
(Last modified on June 9, 2026)
|
Henry Schreiner
I haven’t seen a great deal of practical documentation about using classmethods
as factories in Python (which is arguably the most important use of a
classmethod, IMO). This post hopes to fill in that gap.