Disabling All Retweets

First post of 2020! One thing I do to keep my Twitter feed under control is disabling all retweets. This makes a big difference because then you get more original or personal content instead of just retweets of the Horrible News Of The Day. Of which there seems to be a lot these days. Turning off retweets is pretty simple - just go to a friend’s profile and hit the kebab menu.

An Ode to Sad Mac

Here is a more official build of the Sad Mac screen saver that I wrote last year. It is now properly code-signed and should install and run without any permission issues on macOS 10.12 and newer - Download SadMac-1.3.zip SadMac-1.3.zip (Screen Saver) github.com/st3fan/SadMacScreenSaver (Source Code) Most of my professional and personal work is Open Source. You can find many projects at github.com/st3fan - feel free to leave a bug report or open a feature request.

Screen Savers

I recently wrote three small screen savers for macOS. That was a ton of fun. There is something therapeutic about it. I am making them all available as open source. Let me know what you think. Sad mac This one is an ode to the classic Mac. The Sad Mac would show up if it’s internal hardware test failed. Like when you had a bad RAM chip. Code-wise it is a very basic screen saver actually.

EWM Update: Let's Get Cookin'!

Building on top of the Lua integration work that I landed recently in EWM, my Apple ][+ emulator, here are two small improvements and a fun use case to show those off. New Lua Callbacks First, I have added two callbacks that let you intercept key presses. Not emulated presses, but EWM application key downs and ups. This means that you can now trigger scripts by connecting them to a key combination.

EWM Update: Lua Integration

After an almost eight month interruption by mostly work and life in general, I am finally, and happily, back here writing about something new I added to EWM, my Apple II+ emulator. I always thought it would be interesting to integrate a scripting language in the emulator, so that you can write little (or big) hacks to modify the behaviour of not just the emulator but also the software it runs.

EWM Update: Bootloader

I just landed a patch that adds a bootloader to EWM. Now when you start it without telling it what specific machine to emulate, you will see the following: There is no support for a Character ROM that has lowercase so you have to be a little creative when you use the Github link in it. Or maybe I should make the link clickable? This is most likely how the Raspberry Pi edition of EWM will start.

EWM Update: Optimizing Memory Access

I landed a little patch to optimize memory access to the first two pages of memory: the zero page and the stack. The struct cpu_t now keeps pointers to the memory areas where these pages are kept, so operations on them can access the memory directly instead of going through the memory abstraction. The speedup is specially noticable on the Raspberry Pi Zero: Before pi@raspberrypi:~/Projects/ewm/src $ ./cpu_test TEST Running 6502 tests TEST Success; executed 88957316 cycles in 8.

EWM Update: Small Things

Here is an overview of some small improvements I made this week. It has been hard to find quality time to work on this project so I am not going as fast as during the Christmas break. Blink that cursor The Apple 1 emulation in EWM now blinks the cursor. I did not know that it blinked until I saw some videos on YouTube. I probably got the frequency wrong.

EWM Update: Raspberry Pi Zero

It has been difficult to find the time to hack on EWM since I went back to work. Busy busy. But I did manage to make some small improvements to better support the Raspberry Pi Zero. The Raspberry Pi Zero is a tiny single board computer with a 1 GHz single-core ARMv6 CPU, 512MB RAM and HDMI and USB connections. They are cheap, around $7 CAD plus shipping, and are capable of running Linux.

EWM Update: Linux Support

Emulated Woz Machine, my Apple 1 / Apple ][+ emulator now runs succesfully on Linux. Here is a screenshot of it running on Ubuntu 16.04.1. This was not very difficult to get going. Using SDL 2.0 to abstract everything screen, keyboard and event loop related was a good call. I wrote this emulator in portable C, using just SDL and POSIX APIs. There were just a few small compilation issues that I had to fix.