Project Soon

I have made too many projects in my lifetime, and thought that a repository is not enough to handle support for them. I also believe that to be able to dump my mind from time to time keeps myself on track. I make projects because I like to help people with problems that may or may not be an issue, now or in the future.

Search domain and naming conventions

While I was working to improve my homelab, I found it odd that single-name hostnames worked for Linux, but not for Windows (unless adding a punctuation at the end). As I’ve worked with DHCP before I’ve also seen the term “search domain” and wondered what it really does. In fact, it is used to tell clients to also add a suffix for a search domain. For example if your search domain is example.

Apostrophe

Apparently for some odd reason, it is close to impossible to use apostrophes inside input files for complex filters, as ffmpeg hates this. I’m not sure why, and I’ve tried several ways to replicate it through bash, but the only way was to put quotes around the input file itself. The reason for this is still unknown, so I opt for a temporary solution by creating a temporary symbolic link to the input file and try it that way.

Thread local

I managed to reduce the total time to 14 times native by integrating thread_local for Lua states. I will probably stop pursuing this further as now I probably need to micro optimize Lua the integration itself. Could be that as it does not output correctly would be a potential reason why it is slower too. Worth noting is that the Lua rendering is not completely implemented as it currently does not work with blending.

Lua

Of course I would think that adding Lua as a rendering pipeline would reduce performance significantly, but I never imagined it would be to such degree. On Christmas and New Years holidays I had some free time I wanted to spend on a side project, just seeing how it would turn out. As mentioned previously, I started with creating the library loading and all the utility features around that, which was surprisingly both easy and straightforward.

Dynamic Library Loading and Rendering Pipeline

Some should know by now that I have been thinking to add some sort of pipeline or add-on system used for the rendering. The rendering pipeline itself is currently set in stone, where you can only specify what parts to include and it will be done in proper order. I later thought of adding some sort of pipeline string where you can customize this, but I don’t expect people to find it intuitively enough.

Bisect

One usually forgets the most useful tools right after using them. While I was refactoring a couple of months ago, I had done around 40 commits this day and suddenly realized that it did not render properly. As I had no idea what had caused this, i found out about git bisect. You give it two commit hashes, the first and the last, and it will binary search through all those commits, where you compile and test for each one, and tell if the bug exists or not on that specific commit.

Research Question

The single most important thing with a thesis is the research question. It spans over the whole paper and binds every section together. It doesn’t need to be short, but it needs to be precise and clear. I wrote this question in my introduction, but it is a bit rough, so I need to re-specify it. Normally you should write a research question and go from there, but it is more common that you have a general idea of what you want to research, and change the question along the way.

Tools

It is pretty late mention this, but it may help understanding how my workflow goes and how each tool interact with each other. A tool should be used to help the workflow, but also reduce the time it takes to do one or more tasks. LaTeX is subjectively one of the best markup languages to create documents, slides, and whatnot. It takes time to learn it, but once you have used a template and get hang on references, figures, bibliography, etc, you will find it really powerful and efficient.

Graphs and plots

What makes experiments most interesting is graphs. Or at least what they represent. To do this, my program generated a csv file with all the metrics it had gathered, and with that I loaded it into a second program that created the graphs. Here lay some mines to be aware of. First of, how should the values be represented? If there are some deviates, most of the points may end up in a tiny cluster where we have no idea what they mean.

Reference

One important part with a study is to reference your sources. It is not just to give credit where credit is due, but also to reduce repetition of known information, or avoid explaining redundant or complex structure that has little to no value for the paper itself. What is hard is to find good references. You need a few, very rarely a whole article itself. My study for instance uses only two paragraphs as my core, and one page for the overall structure.