Sr. Developer @easytechgreen

Week of the 1/06/2020 - #23

Contents

Tech

  • Safe Bitcoin storage
  • Update my Tiny-demos Github repo
  • Transfering ROMS to my USB 64m Smart Card Cart

Science

  • The Best Writing on Mathematics 2019
  • Quarks and Leptons: An Introductory Course in Modern Particle Physics

Arts

  • Chipzel - Video-game Composer//Gameboy Musician//Producer//Performer//
  • Apple II generative art experiment 1

Safe Bitcoin storage

I’ve been doing a lot of research for a good, developer level solution to storing BTC. After doing my research these are the tools that seem to be reasonably safe:

  • Electrum Bitcoin Wallet - This is a software which allows you to create a BTC wallet starting from a random phrase. With this phrase a collection of BTC addresses are created. The collection of keys are stored in /home/miquel/.electrum/wallets/<wallet_name>. This file can be encrypted with an additional password or can be stored plain (obviously a very bad idea). The wallet is simply a JSON file which stores: the receiving addresses, change addresses, seed prase and other data. This software connects to a node server from a list of servers to communicate with the Bitcoin network and can sign transactions on it. It’s Github repo is frequently updated which is not very common in many BTC projects I came across.
  • Bitkey - This is a USB Linux distro that can be run all from memory making it very safe. One can boot from this distro, run Electrum in memory and offline, enter the seed phrase and sign transactions to transfer funds which can be passed via a barcode that can be scanned by your cammera.
  • Warpwallet - “WarpWallet is a deterministic bitcoin address generator. You never have to save or store your private key anywhere. Just pick a really good password - many random words, for example - and never use it for anything else.”. You can generate a unique BTC address (public/private pair) and use this wallet with Electrum to sign and watch transactions.

Benefits

  • Bitkey can be used offline and from memory. Your keys never touch a physical device.
  • Warpwallet can also run offline and from memory.
  • Electrum is simple to use
  • Bitkey comes with both Electrum and Warpwallet.
  • Electrum Bitcoin wallet - [web]
  • Electrum Github page - [GH page]
  • Electrum documentation coldstorage - This document shows how to create an offline wallet that holds your Bitcoins and a watching-only online wallet that is used to view its history and to create transactions that have to be signed with the offline wallet before being broadcast on the online one. [page]
  • Bitkey - “Bitcoin Swiss Army Knife in a verifiably secure self-contained Live CD/USB. Supports air-gapped Bitcoin transactions. Makes offline cold storage (slightly more) practical.” [web]
  • Bitcoin Wiki - [web]
  • Warpwallet - [online version] - [Github repo].
  • How to get Electrum 3.1.3 on bitcoin testnet? - answer: $ electrum --testnet
  • Articles on address formats - https://en.bitcoin.it/wiki/Address
  • What does change address mean inside Electrum wallet? - https://bitcoin.stackexchange.com/questions/50050/what-does-change-address-mean-inside-electrum-wallet
  • Yet Another Bitcoin Testnet Faucet - https://testnet-faucet.mempool.co/
  • Address reuse - [wiki article]. “The most private and secure way to use bitcoin is to send a brand new address to each person who pays you. After the received coins have been spent the address should never be used again. Also when sending money to people always ask them for a brand new bitcoin address.”
  • Coin Analogy - [wiki article]
  • Five Ways to Lose Money with Bitcoin Change Addresses - May 25, 2018. Great article with several use cases and examples of what not to do with wallets. [article]

Update my Tiny-demos Github repo

Microdose 128 byte demo

Today I updated my Tiny demos GH repo [GH repo]. I added the Microdose 128b demo with links to a writeup the author did recently. I also added a lot of cool resources for x86 demo programming. Here are the links I added:

  • Magic of 256-byte x86 intros - Jan ‘Rrřola’ Kadlec - Demobit 2017 - [YouTube]
  • Sizecoding.org - [web]
  • x86 instruction set reference - https://www.felixcloutier.com/x86/
  • PC Games Programmers Encyclopedia - The PC-GPE as it currently stands is a collection of text files, each covering a different aspect of programming games for the PC. [pcgpe-1.0]
  • Řrřlog website - [web]
  • superogue’s sizecoding microblog - [web]

More Apple II programming resources

Contining with my hunt for Apple II resources I came across a good French blog maintained by Fenarinarsa [@fenarinarsa].

  • His blog - [web]
  • Apple II reference and code repositories - An article with cool resources [article]
  • Apple II - Double Hi-Res From The Ground Up Part 1: Hi-res Fundementals - “In this series I’m going to explain how to code for the most difficult, colourful, and probably most poorly understood graphics mode on the Apple II: Double Hi-Res.” [article] There are 8 more so do check the rest [here]
  • Double High Resolution Graphics (DHGR) - Pushing Limits - A very thorough writeup on DHGR. [article]
  • PRINCE OF PERSIA CODE REVIEW: PART 1 (INTRODUCTION) - An intro the source code of Prince of Persia (which you can get from GitHub) [article]
  • Latecomer source code - This is the repo for the Revision 2019 ‘Latecomer’ Apple II demo. [Github]
  • fdraw source code - Fast graphics routines for the Apple II. [Github]

Transfering ROMS to my USB 64m Smart Card Cart

64M Smart Card Cart

I have a GB USB 64M smart card [link] which I use to transfer my ROMS to play on my old Gameboys. In Linux I used to use the ems-qart but it wasn’t working on my Ubuntu 19.10. Since I didn’t have a lot of time to see what was going on I tried another alternative which worked out ok: ems-flasher. The only issue I had was that it was throwing a weird error: “error: no valid menu ROM found at bank 0”. After digging a little in the source code it turns out Christophe Staiesse wrote an awesome menu system that allows you to have multiple ROMS on it! Last time I used the Cart you could only have two ROMS and to switch you had to reboot the Gameboy. The ems-flasher repo has a link to an external repo with menu but unfortunately that repo is gone. I looked around and found only a single other repo in GH so I forked it just in case. Check the links bellow. The other issue was that I had to reformat it. Here are some commands to use it:

// Re-format cart to install menu
$ ems-flasher --format

// Show content
$ ems-flasher --title

// Upload LSDJ
$ ems-flasher --verbose --write LSDJ/lsdj-8.5.1.gb 

// Upload my custom ROM
$ ems-flasher --force --write --verbose MarioHockey/roms/mariohokey.gb 
  • Article with more info on the cart - [article]. Since the webpage seems pretty much abandoned I hava a copy [here]
  • My fork of the menugb repo - [GitHub]

The Best Writing on Mathematics 2019

The Best Writing on Mathematics 2019

  • Series website - [web]
  • The Best Writing on Mathematics 2019 - [book page]
  • Entry in JSTOR site - https://www.jstor.org/stable/j.ctvggx33b

Quarks and Leptons: An Introductory Course in Modern Particle Physics

Following up on the subject of understanding Quantum Field Theory and Particle Physics my good friend Ezequiel Alvarez recommended the book ‘Quarks and Leptons: An Introductory Course in Modern Particle Physics’ by Francis Halzen and Alan D. Martin. I will read give it a shot.

Chipzel: Video-game Composer//Gameboy Musician//Producer//Performer//

Chipzel

Today I discovered Niamh Houston, better known by her stage name Chipzel, is a musician from Northern Ireland. She is best known for making chiptune music, particularly with a Game Boy. I came across this tweet with her doing some magic with a single Gameboy + LSDJ that blew my head:

Tweet of Chizel performing

Apple II - generative art experiment 01

I will try to create graphic procedural ‘artwork’ using an Apple II. This is my first creation based on the Fibonacci sequence.

Fibonacci lines

Source:

1 GR : HOME
10 DATA 1,15,2,5,3,6,5,6,8,2,13,2,21,2,34,2
20 FOR I = 1 TO 8
30 READ X
31 READ C
35 COLOR=C
41 VLIN 6,39 AT X + 2
50 NEXT I
60 HTAB 9:VTAB 23:PRINT "f  i  b  o  n  a  c  c  i"
1000 goto 1000

To compile and generate a disk image I use AppleCommander (ac) as follows:

ac -dos140 fibo.dsk
cat fibonacci-01.bas | ac -bas fibo.dsk fibo

One variant adding a complimentary color (DATA 1,15,2,5,3,8,5,9,8,6,13,2,21,02,34,02):

Fibonacci lines variant 2

Another test with white background and different “lettering”:

Fibonacci lines variant 3

1 GR : HOME
3 COLOR=15
5 FOR I=0 TO 39: VLIN 0,39 AT I:NEXT
10 DATA 1,5,2,15,3,6,5,6,8,2,13,2,21,2,34,2
20 FOR I = 1 TO 8
30 READ X
31 READ C
35 COLOR=C
41 VLIN 6,33 AT X+2
50 NEXT I
60 HTAB 4:VTAB 22:PRINT "f . i . b . o . n . a . c . c . i" 
1000 goto 1000

Last variant

Fibonacci lines variant 4

1 GR : HOME
10 DATA 1,15,2,5,3,2,5,6,8,2,13,2,21,2,34,2
20 FOR I = 1 TO 8
30 READ X
31 READ C
35 COLOR=C
41 VLIN 6,39 AT X+2
50 NEXT I
60 HTAB 4:VTAB 22:PRINT "f . i . b . o . n . a . c . c . i" 
1000 goto 1000