Ryan Johnson

  • Symbols in computer science

    Computer scientists need a system of symbols to simplify and unify the expression of concepts, and thereby reduce the complexity of the development process. Programmers have been stuck using the same symbols as typists for 50 years, because, in the beginning, it was expensive to make a separate keyboard for programming and for typing,…

  • Linux sucks, and there’s nothing you can do about it

    Recently I started working on a startup tech business to implement some of my tech ideas. I got a work-space on campus at University of Memphis and they gave me a desk and computer to work on in a shared work-space area where other entrepreneurs are working. The computer they provided is an iMac,…

  • Transcript of FileSystem Conversation

    Below is a transcript of the conversation I had about FileSystems on the Redox-OS Mattermost chat. amdphreak1:08 AM I am researching a new option for filesystems that uses the Associative model of data (graph database model). This will solve alot of problems with maintaining packages and user files across multiple physical media, different lib…

  • Character Map update

    Vote for an update to the Character Map application on Windows.

  • Set Theory in Programming

    In high school and college math courses, we learn about ways to express groups of items as subsets and supersets. This branch of mathematics is called set theory. The expression, X ∈ A means “Item X exists in set A”, or “X is an element of set A”. The symbol looks like an E,…

  • Haskell and functions

    The following is a pair of commands in Haskell that creates a list of numbers and performs a calculation on that list to generate a new list. This is called a list-comprehension. The first statement can be read as Define list_1to100 as a list from 1 to 100, but don’t actually generate a list…

  • Do. Or do not. There is no trie!

    During my journey to educate myself on computer science topics that were not covered in my undergraduate University curriculum, I have come across a number of new concepts that have eluded the general discourse in computer programming, one of which is the “trie” structure, pronounced “tree” or “try” (to differentiate it orally). According to…

  • Wide Gamut Monitor Support on Windows 10

    Wide-gamut monitors are becoming ever more popular, but Microsoft has not made Windows operating system easy to use with wide-gamut monitors and wide-gamut color spaces. sRGB is no longer a given, so this needs to be remedied. Windows Color Management System (WCS) The current Windows Color Management System is miserable. It is completely missing…

  • “Set Membership” Symbol Redesign

    Set Theory In high school and college math courses, we learn about ways to express groups of items as subsets and supersets. This branch of mathematics is called set theory. The expression, X ∈ A means “Item X exists in set A”, or “X is an element of set A”. The symbol looks like…

  • The Future of Programming

    In 2019, during my research into finding or making a dream language, I gave a presentation and prepared a slideshow at the local .NET User Group about the history and future of programming. The presentation covers the early history of programming paradigms and the evolution of C-like languages from Label/Goto jump statements to the…

  • NixOS and the Linux distribution as a “channel”

    I am currently installing and setting up NixOS, a GNU-Linux distribution that lets you configure your system and install apps using a configuration file. The configuration/installation is written in a language of its own called Nix, which is a pure functional language (PFL). If this sounds scary, don’t worry. It’s basically a configuration file…

  • First thoughts on Angular and Typescript

    Today, I looked at a friend’s web project written in Angular 2. I had visited his web app the day before, and it was a relatively simple web app where a young child could do basic arithmetic problems. I opened his repository and immediately was greeted with the most obnoxious number of files possible.…

  • How to write recursive functions

    Recursion is a powerful concept in programming, and it can make code easy to read and understand. This tutorial takes a non-recursive function and re-writes it as a recursive function. These are written in C#, but are compatible with C++ and C. The only difference is that you would use cout << number for…

  • SQL Introduction and Setup

    This tutorial is intended for complete beginners, and should help you avoid the annoying pitfalls that most people encounter when trying to wrap their heads around the concepts of SQL and databases, as well as networking and deployment of a database on Windows and Linux. Introduction SQL is a language for accessing data in…