Week of the 13/03/2020 - #13
Contents
Tech
- Ghidra and Gameboy Roms
- Flutter vs HTML/JavaScript/CSS
- Semantic HTML Cheatsheet
- Patchbay: a poor mans IFTTT
Art
- How to mix different colors in watercolor
- Life Drawing Class live from the Royal Academy of Art with Sarah Simblet
- Sketching ideas: Yoga poses and my Apple //c
- Art of the day: pencil drawings by Stefano Turconi
Science
- A simple demonstration of Bell’s theorem involving two observers and no probabilities or inequalities
Ghidra and Gameboy Roms
This weekend I needed to reverse engineer an old FoxPro program and played a little with Ghidra to start getting acquainted with it. It’s a bit tricky to get the hang of it but I want to use it to debug GB and C64 Roms as well. For this I need to understand how to extend Ghidra. Found this article Ghidra Loader for Super Mario Bros. 3 NES ROM which talks about Ghidra loaders whish is, aparently, what I need to create. There are a couple of Ghidra loaders for GB/GBA cartridges already. See links below.
Links 🔗
- Software Reverse Engineering (SRE) Framework: Journey from Classified NSA Tool to Open Source - 2019 Blackhat presentation
- Ghidra Loader for Super Mario Bros. 3 NES ROM This is interesting because it discusses how to handle ROM which map different banks of the cartridge to the same physical address which is something we’ll need for our GB loader. It also discusses how to create a symbol table with specific addresses like IO mapped locations, etc.
- Some code on Github from this article
- A Ghidra Loader plugin for the Nintendo Switch
- [[WIP] A simple Ghidra loader for GameBoy ROMs](https://github.com/ImNotAVirus/ghidra-gb
- [GhidraGBA: GBA ROM loader for ghidra](https://github.com/SiD3W4y/GhidraGBA
- [Ghidra Decompiler & Disassembler - Awesome List](https://www.retroreversing.com/ghidra
- [Nintendo 64 decompiling with Ghidra](https://www.retroreversing.com/n64-decompiling
- N64 ROM Loader for Ghidra by Warranty Voider
Ideas💡
- Create a Ghidra loader for GB Roms, C64 programs and/or C64 Vice Snapshots
- Add to Ghidra all the known Symbols (addresses) and its documentation for C64, GB and Apple II
Flutter vs HTML/JavaScript/CSS
I read an article I related a lot with about the current crazy state of JavaScript development. The article touted the use of Flutter as Google’s killer to the JS/HTML/CSS madness. I want to read more. If I find the article I’ll link it here.
Links 🔗
Ideas💡
- Create a Flutter app to browse my collection of Tumblr and Instagram reference photos.
- Create a Flutter app with basic image processing: crop, resize, B&N, etc. Things that I need to do quickly and don’t want to open Photoshop or Gimp.
- Create an app to create 3D modles quickly which has a UI very similar to SketchApp but Open Source. The design will be focused on creating furniture with wood so the modeling might be based on operations that are equivalent of what you would do in the shop: crosscuts, holes, etc.
Semantic HTML Cheatsheet
This is a helpful cheatsheet for writting semantic HTML I found in [this tweet](https://twitter.com/housecor/status/1243625787426844672
How to mix different colors in watercolor
One of my favorite parts of the book “The Big Book of Watercolor” from José M. Parramón is the chapter Color MIxing in Watercolor which has several illustration on page 121-126 with four color swatches and how to mix those colors. They are divided in warm, cold and broken colors. Here are the illustrations
Life Drawing Class live from the Royal Academy of Art with Sarah Simblet
I love Sarah Simblet’s drawings and enjoyed watching this TV program where she hosts a live drawing class on YouTube from The Royal Academy. You can watch the YouTube video here.
Here are some high resolution scans of two of Sarahs drawings I found here.
Sketching ideas: Yoga poses and my Apple //c
A couple of ideas for sketching:
-
I want to create a series of quick sketches of Yoga poses by taking screenshots of the exercises in the app Down Dog.
-
Do some sketches of my Apple //c with pencil and watercolor
Art of the day: pencil drawings by Stefano Turconi and John Sweeney
I found some beatiful pencil comic book drawings by Stefano Turconi in a series of tweets from the account of Horacio Altuna
Some sketchbook illustrations from John Sweeney
Patchbay: a poor mans IFTTT
Patchbay is, as described on their TL;DR in the wesite: “patchbay.pub is a free web service you can use to implement things like static site hosting, file sharing, cross-platform notifications, webhooks handling, smart home event routing, IoT reporting, job queues, chat systems, bots, etc, all completely serverless and requiring no account creation or authentication. Most implementations need nothing but curl and simple bash snippets.”
One of the first cool thing the author achives is to receive a Linux desktop notification when a server finishes running some long running job. It basically uses the notify-send
program to send desktop notifications (man notify-send
). The trick is to open a channel on Patchbay which when it receives a message fires norify-send
. This bash command blocks until you do a curl -X POST
on the other end of the channel.
Ideas
- See if we can use this when running long tasks in ASYS.
A simple demonstration of Bell’s theorem involving two observers and no probabilities or inequalities
Usually understading Bells inequalities is complicated and hard to follow for people not in Quantum Mechanics (and even for Physists!). It turns out that P. K. Aravind has provided a nice gedanken experiment which shows you how using entangled particles can be used to “win” a colaborative two player game with probabilty 1 where clasically the highest that can be achived is to win ~89% of the time. The problem is prsented in the article Landmark Computer Science Proof Cascades Through Physics and Math that appears in the Quantamagazine blog).
Quoting from this article:
“But first, to see how the games work, let’s imagine two players, Alice and Bob, and a 3-by-3 grid. A referee assigns Alice a row and tells her to enter a 0 or a 1 in each box so that the digits sum to an odd number. Bob gets a column and has to fill it out so that it sums to an even number. They win if they put the same number in the one place her row and his column overlap. They’re not allowed to communicate.
Under normal circumstances, the best they can do is win 89% of the time. But under quantum circumstances, they can do better.
Imagine Alice and Bob split a pair of entangled particles. They perform measurements on their respective particles and use the results to dictate whether to write 1 or 0 in each box. Because the particles are entangled, the results of their measurements are going to be correlated, which means their answers will correlate as well — meaning they can win the game 100% of the time.”
The following image illustrates the problem:
This problem is fully explained and proved in the paper “A simple demonstration of Bell’s theorem involving two observers and no probabilities or inequalities” by P.K.Aravind.