[Nix-dev] Ideas for a NixOS-related bachelors thesis?

Matthias Beyer mail at beyermatthias.de
Thu Oct 29 09:01:09 CET 2015


Hi,

for those who don't know me: I'm a 24 year old student at a university
of applied sciences in the black forest, germany. I'm in my 6th
Semester right now, the 7th (bachelors thesis) starting in
Feb/March 2016.

I'm writing you people because there might be ideas for a
NixOS-related bachelors thesis?

The constants are:

    - Time: Something 4-month-is

    - I don't want to do it at a company and I want to remain at my
      university for the time of the thesis, if possible. Also because
      I still want to attend some (voluntary) lessons there

    - The topic should be NixOS related (personal interest), I have to
      convince my professor, though

    - It should be programming-related

    - I want to be able to create, I want to be able to be creative

    - I want to be able to choose the language I program in, if
      possible. Candidates are:

        - C (not unconditionally)
        - C++ (I'm not so good at it)
        - Ruby (I'm really good, I guess)
        - Bash (I'm okay at it)

    - I can relate to the topic. I have no personal use for nixops and
      therefor never used it, so I won't have any relation to a
      nixops-related topic... I guess you understand what I mean here.

I guess there are more things to this list and I just cannot remember
them right now.

I already had an idea, where a prof told me that he would do this and
the scope is okay for a thesis at a university of applied sciences:

    The idea was to create a source-to-source compiler and translate
    (for example) Archlinux pkgbuild files to nix expressions.

    There would be three steps in complexity:

        Simple: compile one package to one package. Just AST
        transformation, nix files have to be manually edited
        afterwards, eventually

        Medium: compile a tree of packages (optionally find cyclic
        dependencies), nix files have to be manually edited
        afterwards, eventually

        Complex/Large: compile a tree of packages, find cyclic
        dependencies, be able to build the expressions without further
        modification (the compiler resolves dependencies
        appropriately)

    I guess I would do Simple and Medium, Large if I have too much
    time left.

    I'd do this in Ruby and I'd use a parser generator for this and
    not write a parser on my own.

This is considered a great amount of work for a bachelors thesis by
one of my profs, but he also things I'm a rather good student and I
can do this. I hope this gives you an idea of what amount is
appropriate.


So why this mail? Just a quick POLL to get some more ideas out of the
community. Maybe there are more interesting topics around, I don't
know.

I will be at NixCon and almost certainly at 32C3, so we can discuss
there as well.

-- 
Mit freundlichen Grüßen,
Kind regards,
Matthias Beyer

Proudly sent with mutt.
Happily signed with gnupg.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
Url : http://lists.science.uu.nl/pipermail/nix-dev/attachments/20151029/7bcdadab/attachment.bin 


More information about the nix-dev mailing list