Below is a quick overview of every repository on my Github. All projects are original sources (rather than forks of projects created by other users).
-
- Forthish - A C# Console application for a Forth-like stack-based language
- Logo - A C# WinForms implementation of the educational programming language Logo with the addition of variables, evaluations and basic control functions (if/then/else/loops etc.)
- Lispy - A basic Lisp interpreter in Nim
- Subleq - A Subleq interpreter in Fortran
- AnalyticalEngine - Analytical Engine emulator in Raku
- BrainfuckBrowser - A very simple browser-based Brainfuck interpreter in Javascript, HTML & CSS
- BrainfuckCompiler - A command-line node.js application for generating MASM-compatible x86 Assembly versions of Brainfuck programs
- Logo3D - 3D Logo interpreter in Python using OpenGL
- Lambda - A simple Lambda Calculus expression interpreter in Java
-
- Traceroute - A simple command-line tracert implementation in Python 3 using ICMP packets
- TCPPortScan - A simple TCP Port Scanner in Ruby
- DNS - A simple command-line Domain Name System tool in Ruby
- SYNScan - A command-line port scanner using raw SYN packets in C
-
- RedditImageScraper - Console application for downloading images from Reddit in Python
-
- GOFAI
- TicTacToeMinimax - A simple C# WinForms application for playing Tic-Tac-Toe (Noughts & Crosses) using the Minimax algorithm
- DraughtsMinimax - A Processing implementation of Draughts (Checkers) using Minimax
- Connect4Minimax - A Connect-4 game using Javascript and p5.js
- Robotics
- RobotArmGestures - Controlling the Hiwonder xArm1S robotic arm with hand gestures in Python
- GOFAI
-
- Wordsearch - Wordsearch puzzle solver with UI in Java using Swing and searcher in Erlang
- Sudoku - A Sudoku puzzle solver with algorithm in F# and UI in C# Winforms
- PegSolitaire - Peg Solitaire solver in OCaml
- Traintracks - Traintrack puzzle game in Python
- GeniusSquare - Genius Square puzzle solver in Python
- Hangman - Hangman in SNOBOL
- ConsoleSnake - Snake game for Windows console in C/C++
- Pong - Pong game in x86 Assembler
- NQueens - N-Queens solver in Common Lisp
- MagicSquare - Magic Square solver in Prolog
-
- AdafruitBLESniffer - Bluetooth sniffer for the Adafruit Bluefruit device in Python
-
- LoStikLoraChat - Simple text chat client for the LoStik Lora device using Python and PySimpleGUI for UI
- MeshSpeech - Meshtastic desktop client with text-to/from-speech in Python
-
- ToneGenerator - DTMF, Blue, and US/UK Red Box tone generator for the Cardputor device in Arduino Sketch (C++)
- FlipperZeroIRPlayer - Program for playing Flipper Zero IR files on CardPuter device in Arduino Sketch (C++)
-
- Maze - Maze Generation and Solving in Python
- Fractals - Fractals with zoom functionality in Python and Julia
- BitwiseImages - Images created with bitwise operators in Julia
- MSPainter - Picture generator using MS Paint in Python
- GraphPlotter - Graph Plotter in Python using Tkinter
- ImageToANSI - Image to ANSI converter in Perl
- TextToSpeechTail - Console tail application with online/offline text-to-speech in Python
https://github.com/James-P-D/Forthish
A C# Console application for a Forth-like stack-based language
https://github.com/James-P-D/Logo
An implementation of the educational programming language Logo with the addition of variables, evaluations and basic control functions (repeat
, if..then..else
, while
, break
, continue
etc.) in C#
https://github.com/James-P-D/Lispy
A basic Lisp interpreter in Nim
https://github.com/James-P-D/Subleq
A Subleq interpreter in Fortran
https://github.com/James-P-D/AnalyticalEngine
Analytical Engine emulator in Raku
https://github.com/James-P-D/BrainfuckBrowser
A very simple browser-based Brainfuck interpreter in Javascript, HTML & CSS
https://github.com/James-P-D/BrainfuckCompiler
A command-line node.js application for generating MASM-compatible x86 Assembly versions of Brainfuck programs.
https://github.com/James-P-D/Logo3D
3D Logo interpreter in Python using OpenGL
https://github.com/James-P-D/Lambda
A simple Lambda Calculus expression interpreter in Java
https://github.com/James-P-D/Traceroute
A simple command-line tracert implementation in Python using ICMP packets
https://github.com/James-P-D/TCPPortScan
A simple TCP Port Scanner in Ruby
https://github.com/James-P-D/DNS
A simple command-line Domain Name System (DNS) tool in Ruby
https://github.com/James-P-D/SYNScan
A command-line port scanner using raw SYN packets in C
https://github.com/James-P-D/RedditImageScraper
Console application for downloading images from Reddit in Python
https://github.com/James-P-D/TicTacToeMinimax
A simple C# WinForms application for playing Tic-Tac-Toe (Noughts & Crosses) using the Minimax algorithm.
https://github.com/James-P-D/DraughtsMinimax
A Processing implementation of Draughts (Checkers) using Minimax
https://github.com/James-P-D/Connect4Minimax
A Connect-4 game using Javascript and p5.js
https://github.com/James-P-D/RobotArmGestures
Controlling the Hiwonder xArm1S robotic arm with hand gestures in Python
https://github.com/James-P-D/WordSearch
Wordsearch puzzle solver with UI in Java using Swing and searcher in Erlang.
https://github.com/James-P-D/Sudoku
A Sudoku puzzle solver with algorithm in F# and UI in C# Winforms
https://github.com/James-P-D/PegSolitaire
Peg Solitaire solver in OCaml
https://github.com/James-P-D/Traintracks
Traintrack puzzle game in Python
https://github.com/James-P-D/GeniusSquare
Genius Square puzzle solver in Python
https://github.com/James-P-D/Hangman
Hangman in SNOBOL
https://github.com/James-P-D/ConsoleSnake
Snake game for Windows console in C/C++
https://github.com/James-P-D/Pong
Pong game in x86 Assembler
https://github.com/James-P-D/NQueens
N-Queens solver in Common Lisp
https://github.com/James-P-D/MagicSquare
Magic Square solver in Prolog
https://github.com/James-P-D/AdafruitBLESniffer
Bluetooth sniffer for the Adafruit Bluefruit device in Python
https://github.com/James-P-D/LoStikLoraChat
Simple text chat client for the LoStik Lora device using Python and PySimpleGUI for UI
https://github.com/James-P-D/MeshSpeech
Meshtastic desktop client with text-to/from-speech in Python
https://github.com/James-P-D/ToneGenerator
DTMF, Blue, and US/UK Red Box tone generator for the Cardputor device in Arduino Sketch (C++)
https://github.com/James-P-D/FlipperZeroIRPlayer
Program for playing Flipper Zero IR files on CardPuter device in Arduino Sketch (C++)
https://github.com/James-P-D/Maze
Maze Generation and Solving in Python
https://github.com/James-P-D/Fractals
Fractals with zoom functionality in Python and Julia
https://github.com/James-P-D/BitwiseImages
Images created with bitwise operators in Julia
https://github.com/James-P-D/MSPainter
Picture generator using MS Paint in Python
https://github.com/James-P-D/GraphPlotter
Graph Plotter in Python using Tkinter
https://github.com/James-P-D/ImageToANSI
Image to ANSI converter in Perl
https://github.com/James-P-D/TextToSpeechTail
Console tail application with online/offline text-to-speech in Python
When learning any programming language, I create a 'dump' folder into which I commit various scripts during the learning process.
When I feel comfortable undertaking a larger project in a new language I will often add additional scripts as I come across concepts or libraries that I didn't encounter whilst learning. It also serves as a useful 'cheat-sheet' to refer to when I need to recall 'how to create a 2D array in language X', 'can language Y pass-by-reference?', 'how to pass variable number of parameters in language Z', etc.
The full list of 'dump' repositories is as follows:
- C# - C#, WPF, .NET etc.
- Java - Java
- C - Classic C
- C++ - "There are only two kinds of languages: the ones people complain about and the ones nobody uses." - Bjarne Stroustrup
- Rust - "most loved programming language" in the Stack Overflow Developer Survey every year since 2016, apparently
- Go - General purpose language created by Google
- Zig - Niche systems programming language
- Python - A general purpose programming language whose popularity is inversely proportional to the amount of thought that went into creating it
- Ruby - Ruby
- Processing - An educational programming language made for visual design - similar to, and compiles to, Java.
- Julia - A high-level (but fast) programming language for science and maths. Often touted as a replacement for MATLAB.
- Nim - A rarely used but fascinating language with a host of interesting programming features
- Perl - Perl
- Raku - Rebranded Perl 6
- Javascript - Everyone uses it, everyone hates it, and everyone keeps using it
- TypeScript - Javascript superset with an actual type-system
- Lisp - Common Lisp
- Clojure - A modern Lisp dialect
- Racket - ..and another Lisp dialect
- Scala - A functional language that runs on the JVM
- F# - The .NET functional programming language. Similar to ML.
- OCAML - Functional programming language. Again, similar to ML.
- Haskell - Pure functional programming language
- Erlang - Functional programming language from Ericsson
- Elixir - Functional programming language that runs on the Erlang VM
- R - Statistical programming language
- Prolog - Old and largely forgotten logic programming language
- SNOBOL - Very old language for string-orientated programming language
- PostScript - Stack-based page description language
- x86 Assembly - x86 Assembly
- Wasm - Low-level WebAssembly
- JavaByteCode - Low-level Java Byte Code