Skip to main content

Posts

Showing posts with the label software

Windows Subsystem for Linux Internals

Background Windows Subsystem for Linux was developed by Microsoft to enable command line programs compiled for the Linux operating system to be executed on Windows. To explain the architecture I would like to show the evolution of OS design and how that has enabled this subsystem to be built. Dark Ages (or Back in the Day) Microsoft's MS-DOS was quite primitive in its design (compared to today's OS's). It is a single user OS that can execute one process at a time. DOS had an application programming interface to allow user programs to access some hardware in a device independent way, but only for character-based applications. This allowed applications to display graphical elements emulated with text characters as these screenshots of Microsoft word for DOS show: This is Microsoft Word version 1. To use these programs you had to remember key combinations to bring up the menus and used the cursor keys to navigate around the screen. If the a...

What does "Full Stack" mean?

I've been a software engineer for a little while and I see the term "Full Stack developer" more and more, but what does it mean? Okay, let's walk through what a complete system will comprise of and see if we can work it out. UI First (from the users perspective) is the UI. It's how they interact and really all they care about (as long as the application does what is expected of it. Here is a list of some UI technologies that I know of AWT Swing Qt Android XML MFC and VB OpenGl Vulkan Communication Protocol Next up is the communications protocol (as most applications these days are a thin UI talking to a backend server (we've gone back to the mainframe era!) RPC FTP SNMP SMTP DDS ActiveMq/RabbitMq Network Layer The communications protocol has to be transported between the client and the server somehow, so here we have the network layer IPX/SPX Token Ring Bluetooth USB Server So now we have data being transferred between t...

Creating a Watch Face for Android Wear OS 2

Step 1 - Setup my watch for development I have wanted to create a watch face for android wear for a while, but as no new watches were being released my old Moto 360 watch running wear os 1.0 got out of date and I stopped using it. For Christmas 2018 I got a new wear os watch running wear os 2.2 (android os 8.0.0). it has a round 400 x 400 screen and I decided to finally get round to creating myself a custom watch face for it. The first thing I do with all my android devices is to enable developer options. if you don't know how to do that then you can find the method using a google search. I won't give it hear as it opens up all sorts of options that could make android become slow/unusable. Once I had developer options enabled, I turned on USB debugging. This watch (as opposed to my old Moto 360) has a USB connection to the computer, so I don't have to use WiFi debugging (which has to be set up for each debugging session). now on to the watch face creation. St...