CS update; mid Q1

@protolambda Oct 10, 2016

Time flies by so fast; I’m 6 weeks into CS now. Time for an update!

CS update

I took two mid-terms previous week, and I did reasonably well (I think); welcome back free time! However, the courses keep putting up more and more homework, so I’ll have to keep up pace. “No free lunch in Computer Science” — to quote my Comp. Org. lecturer.

Computer Organization

And it is not just homework, I want hand in some bonuses too! The CO lab has some interesting bonus exercises:

  • Write a Sha-1 Hash command tool.
  • Write a program that embeds “secret data” in an image.
  • Write a game (without standard lib functions)

All in Assembly! (All for x86-64, except the game, which is free choice)

Reasoning and Logic

Reasoning and logic is going pretty well, I don’t think I scored a 10 on the mid term, but I kept pace with all the bonuses. We’ll continue with some more number theory and recursion, some more number theory and then recursion. /jk

Object Oriented Programming

OOP is a different story, there’s no midterm, nor any kind of bonus, so it’s just homework for now. Not much of a problem, since I don’t think I will have difficulties with the exam, but I’m a bit concerned for others; not everyone has prior experience. The homework, or lab-assignments, whatever you want to call it, is going ok for now. I’ve used my lead in the mid-term week to spend some extra time on learning, but I’ll catch up with it again to re-create the little time-reserve.

Project update

Cellular Automata

My automata project is open-source now! Nothing special, but some of the presets have remarkable state developments, especially with the replicator-rule. You can try it out on:


I made some progress on the Twitch bot last weekend; the functionalities are split up in plugins, which are isolated from one another and run parallel. I’ll open-source them SOON™ The bot is structured as follows:


This is the folder where your configuration resides, and OAuth files for bot accounts, possibly under your own private version management.


This is the Dart library that you call to read your config. Protip: the pub-tool has a global activate command to run scripts easily from everywhere


This is one of the plugins you can add in your config. Just specify the path, its plugin-channel permissions and some options (to overwrite presets such as the username).


This plugin is far from finished, but the general idea works as follows: The plugin spins up a web-server and listens for chat, users, events, etc. It then transforms these data-streams and pipes them through web-sockets to the clients, which handle the data and render the results in the web browser.

The data-representation is not as sophisticated yet: I currently just write out a un-styled HTML list of chat-users, but that will look much better with some CSS soon™

And why is it called “screen”? You might have guessed it, the web-page background works as a green-screen! So I can overlay the browser-view on top of the Twitch stream, and have my own bot render fun things (scoreboards, chat, etc.) on-screen instead of boring IRC messages!


I hoped to update it last weekend, but didn’t have enough time to actually do so. MCPE updates should be reasonably compatible, except for the world-format change that is coming in the 0.17 update. However, 0.16 is not even officially out, so updating won’t be a problem.

A short overview of the “Blocktopograph-short-term-TODO-list”:

  • Improve markers
  • Multi-thread the NBT editor (some parts are already, but editing is still laggy)
  • Add Chinese (translation is done!) and Brazilian (huge user-base) translations.
  • Update play-store (ofc.)

I’m planning to stream some of the update-progress on Twitch, since I quite liked my test-stream this weekend, but don’t expect a professional streaming schedule: my free time is scarce enough!


Software engineer, CS student, blogger.