Sr. Developer @easytechgreen

Week of the 13/04/2020 - #16

Contents

Tech

  • Revision2020 Notes
  • Revision2020 Seminar: Implementing a Physically Based Shading without locking yourself in
  • Revision2020 Seminar: Modern 64k intro compression (Ferris)
  • Random Revision2020 notes
  • C64 demos I liked
  • Interesting person: Inigo Quilez
  • Interesting person: Flopine

Science

  • Discover the Fingerprint of Your Electrical Appliances
  • Jupyter Notebooks: simple graph of sin(x) / x
  • Some useful resources for working with Jupyter notebooks and Python

Art

  • Interesting Artists: Santiago Guevara
  • Other interesting Domestika courses

Revision2020 Notes

It’s that time of the year again: Revision 2020 party. This weekend (Easter weekend) the Coronavirus has forced the demo party to be remote which means we get to experience it. In here I’ll drop my notes and links to stuff I find interesting.

256b Dosbox demo

The first demo that caught my eyes is this one. Its a 256 byte demo. I always find it amazing this can be done so I want to try to understand some of the trick used here. Fortunately this time the entry (you can downoad it here) comes with the source code! To run it (in Linux, of course) all you need is to install dosbox (and nasm if you want to compile the code) with:

$ sudo apt-get install dosbox nasm

unzip it in a directory and run it with:

dosbox -conf dosbox-0.74-3.conf memories.com

to compile do:

nasm memories-dosbox.asm -fbin -o test.com

This will work fine without audio (at least in my case there is no audio. I’ll see how to set it up a bit later)

I’ll write more notes here as I dive into the code. First some reminder of the registers in the 8086/80256 to understand a bit the listing:

8086 Register Organization

Notes

  • To look at the status of registers and debug the app you can run DEBUGX with Dosbox with:

    $ dosbox -conf dosbox-0.74-3.conf DEBUGX.COM
    

Initial registers of code

Other cool 256b demos

Revision2020 Seminar: Implementing a Physically Based Shading without locking yourself in

This was an awesome presentation on the basic laws of physics involved in the propagation of light in different materials. The author (Zavie / Ctrl-Alt-Test) walks us through the different physical laws that related to how light bounces and travels through mediums. He also shows a Shadertoy demo which show how light interacts in a boundry between to mediums. The shader allows you to tweak a lot of parameters and you can see how interference between the sources at the interface give rise to the reflected and refracted wavefronts. Really neat!

Revision2020 Seminar: Modern 64k intro compression (Ferris)

This is a seminar that talks about squishy which is an .exe -> .exe encoder. What this is is a program which takes as input an Windows executable and produces an new executable but with a much smaller size. The compressor is optimized for 64K demos. The talk is very good. Some takeaways and things he talks about:

  • Discusses a strategy to lay down the Header, Code and Data sections of the EXE and create a new EXE which compresses the memory. The new EXE created has the uncompressor and the data needed to explode the info and recreate the original EXE.
  • Also talks about techniques for re-linking the EXE to its DLLs without needing to maintain the original names
  • It then goes to ‘the meat’ of the talk: discuss models for compressing strings of bits
  • probabilities of 1 or 0 might depend on what happened in previously so probabilities are not independent on the order. It explores and talks about may different strategies to create predictors which will compress nicely depending on the type of correlations in the data.

Ideas💡

  • Investigate if ML techniques can be used to try to predict what bits are next

Random Revision2020 notes

Some random links of interesting stuff I saw:

Demos I liked

These are some categories and demos I liked which belonged to that category.

4K Intro

Amiga

  • Amiga demo - Netflex und Chill

Oldskool

PC Demo

C64 Demos I liked

mibric64 twitch channel image

Saw a Twitch stream from mibric64 which basically plays C64 demos and intros. The following one I liked the esthetics:

  • Pearls for Pigs - YT
  • Monomania by Offence - YT Pouet
  • My Life (2018) - LMan CSDB - SID track

Interesting person: Inigo Quilez

Spanish, Basque Country. A lot of resources on his site related to computer graphics, demoscene, shadertoy. Profiles on social media:

Interesting person: Flopine

She is a shader artist that won Revision2020 live coding competition.

You can see the video of the semi-finals of the shader compo here. They use a live shader coding tool called Bonzomatic.

Discover the Fingerprint of Your Electrical Appliances

For a potential work we are discussing with a client I learned about the concept of ‘appliance fingerprint’ where one can determine what appliances are connected to the electric network by monitoring the energy consumption as a function of time. Here are some references:

Also during our meeting I learned about Efergy, a company which makes a device that you can connect to the live feed cable that comes into your house to monitor energy consumption as a function of time. This information is relayed to a hub which can then be collected on a server on the cloud to have a very clear view of your energy usage. With this information and the fingerprint you could potentially provide the user with ideas to reduce electrical usage. Another service is called sense: “Sense installs in your home’s electrical panel and provides insight into your energy use and home activity through our iOS, Android, and web apps.”. Web site

Ideas💡

  • Build a proof of concept IoT device to with an ESP32 con measure current and push to the internet.
  • Use the same method to measure very small currents on a cellphone battery to measure power consumption for the loading of a web-page. ♻

Jupyter Notebooks: simple graph of sin(x) / x

Jupyter video

To continue analyzing the 256 byte demo “memories” I needed to do some calculations and graph some functions. For this I used Jupyter which is really great. Since I hadn’t used it much I needed to learn how to do a quick graphic. I found this video which was really helpful and has some great tips.

YouTube Video - Learn Jupyter Notebooks (Pt. 1) Plotting

For plotting he uses the “Matplotlib” Python library. You can see all the documentation in this link.

Some useful resources for working with Jupyter notebooks and Python

To work with Jupyter notebooks there are a couple of libraries that are ‘essential’. Here are some useful links / resources

Interesting Artists: Santiago Guevara

I was looking at the art courses in domestika and came across one by Santiago Guevara. I liked his style so I added him to my Instagram. Here is some of his work and a link to the course in Domestika.

Santiago Guevara's work Santiago Guevara's work Santiago Guevara's work Santiago Guevara's work Santiago Guevara's work Santiago Guevara's work

Course on Domestika

Here’s the link to his course (in Spanish): Crea tu primer cuaderno de dibujo

You can check his Instagram account here

Santiago Guevara's work

Other interesting Domestika courses

The Domestika platform has a lot of great crouses. Here are some that caugh my eye: