Saturday, July 28, 2018

Emacs org-mode

I've been an emacs user since around 1979. My hands know where the keys are and which keys to hit to get things done. The fact that I don't need to lift my hands from the keyboard to grab the mouse to get something done (and causing me to lose my train of thought) is huge. This is something that the Apple OS does well and Microsoft doesn't seem to get. To make matters worse, lots of new tools are web based where getting data from one application to the next is near impossible without using the mouse and without interrupting my hands on my keyboard. So I'm thrilled that I now have a non-web based organizer that's in emacs (my favorite editor/environment), it's emacs org-mode. Now I can concentrate on the programming algorithms and not on my tools.

I've been looking for a text based organizer tool where I can put my work notes in some kind of format that I can dump into HTML or work with in an editor. I was looking at learning Microsoft's Onenote but I'll be honest, I really didn't like the idea of learning more because I'm already learning all sorts of new stuff for work (VMs, Docker, micro-services, etc, etc.). I only have so much bandwidth. Somewhere along the way I ran across Emacs org-mode. I decided to give it a try and was overwhelmed with all the options and didn't really come to grips on how to get started. Every once in a while I'd try again and make no progress. Then I found a Uncle Dave's Emacs Videos (start with Org-mode Tutorial 1 - Introduction and basics). While I'm not too thrilled about the profile picture (Pepe the frog, now an alt-right icon) I am thrilled with the material, just emacs. One word of warning, turn up the volume otherwise you won't hear Dave. Anyways, he explains things in a way that is useful to learn enough about org-mode to make it useful in day to day usage (business and hobbist/DIY'r). So with just the first 4 of 5 tutorials I've learned something I can use in my day to day notes needs. I'd also recommend the Emacs Tutorial 6 (Introducing: org-mode). I'm certain there's a lot more to learn and options I'll never need or use but so far I'm thrilled I have a tool that works in both Linux and Windows. And I'm looking forward to a tool that can export my notes into HTML so I can throw them up on the 'net. I'm finding that it's a lot easier to search my notes with Google and I don't have to drag my computer with me.

Tuesday, July 17, 2018

FPGAs, something new to play with.

Well something new for me anyway. These are technically obsolete parts that I'll be playing with but they were cheap and the software is still available.

I have an interest in vintage computers, mainly because I lived through the start up of the microcomputer revolution. And one of my favorite processors is the Motorola 6809. It's assemble language was easy to learn and it always reminded me of the C language in that I could think about my C programming and translate it into 6809 assembly language. Anyways, I have a few 6809 systems but recently found Grant Searle Multicomp board. It's an FPGA based board that can be programmed to be a 6809 system, a Z80 system or a 6502 system. I came across an opportunity to get a bare board cheap. So I ordered it and I've assembled most of it. While the various different systems are very cool my mind is stuck on the 6809. Now I've always wanted to learn about how to program FPGAs and now is my chance. First I'll build it, then run it with a simple ROM monitor, later get it running OS-9 (maybe Level II) and then I'll see where it goes from there. I'm pretty sure I have a steep learning curve but but that's nothing new. To help with this endeavor I have the Multicomp board and it's parts, with an Altera EP2C5, but I also picked up another Altera board with the EP2C8 (a few more pins and maybe some more space in the FPGA). I'm hoping that will be my learning lab while the other board will be my play thing.

So I'm playing with vintage computers, FPGAs (software defined hardware), working with Software Defined Networks, Virtual Machines, virtual environments (Docker containers), emulators, simulators (sim09, etc) and the Agile methodology. This is not a direction I would have expected when I started this journey in college. Strange days indeed.

PS: For those who may be wondering how this all fits in with home automation. All of these things are being used to build the custom parts of various sensors for my home automation devices and the control system. I just put the finishing touchs on the mytimeout node for Node-Red (though I still need the automated testing part) and I will begin to work on the RF/IR node based on the ESP8266. This will be the final part for the feature request from my wife, the TV sleep timer. There are still a few more details to work out but basically she can set the time, hit a button and then if she falls asleep watching TV everything will turn off in the proper order. My wife is very critical of my home automation and five 9s is at the low end limit of her tolerance.