Skip to content
View James-P-D's full-sized avatar
  • London
Block or Report

Block or report James-P-D

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
James-P-D/README.md

James-P-D

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).

Contents

  • Compilers and Interpreters

    • 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
  • Networking Tools

    • 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
  • Web Tools

  • Artificial Intelligence

    • 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
  • Puzzles

    • 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
  • Bluetooth

  • Lora

    • 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
  • CardPuter

    • 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++)
  • Miscellaneous

    • 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
  • Dump Folders

Compilers and Interpreters

https://github.com/James-P-D/Forthish

A C# Console application for a Forth-like stack-based language

Screenshot


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#

Screenshot


https://github.com/James-P-D/Lispy

A basic Lisp interpreter in Nim

Screenshot


https://github.com/James-P-D/Subleq

A Subleq interpreter in Fortran

Screenshot


https://github.com/James-P-D/AnalyticalEngine

Analytical Engine emulator in Raku

Screenshot


https://github.com/James-P-D/BrainfuckBrowser

A very simple browser-based Brainfuck interpreter in Javascript, HTML & CSS

Screenshot


https://github.com/James-P-D/BrainfuckCompiler

A command-line node.js application for generating MASM-compatible x86 Assembly versions of Brainfuck programs.

Screenshot


https://github.com/James-P-D/Logo3D

3D Logo interpreter in Python using OpenGL

Screenshot


https://github.com/James-P-D/Lambda

A simple Lambda Calculus expression interpreter in Java

Screenshot


Networking Tools

https://github.com/James-P-D/Traceroute

A simple command-line tracert implementation in Python using ICMP packets

Screenshot


https://github.com/James-P-D/TCPPortScan

A simple TCP Port Scanner in Ruby

Screenshot


https://github.com/James-P-D/DNS

A simple command-line Domain Name System (DNS) tool in Ruby

Screenshot


https://github.com/James-P-D/SYNScan

A command-line port scanner using raw SYN packets in C

Screenshot


Web Tools

https://github.com/James-P-D/RedditImageScraper

Console application for downloading images from Reddit in Python

Screenshot


Artificial Intelligence

GOFAI

https://github.com/James-P-D/TicTacToeMinimax

A simple C# WinForms application for playing Tic-Tac-Toe (Noughts & Crosses) using the Minimax algorithm.

Screenshot


https://github.com/James-P-D/DraughtsMinimax

A Processing implementation of Draughts (Checkers) using Minimax

Screenshot


https://github.com/James-P-D/Connect4Minimax

A Connect-4 game using Javascript and p5.js

Screenshot


Robotics

https://github.com/James-P-D/RobotArmGestures

Controlling the Hiwonder xArm1S robotic arm with hand gestures in Python

Screenshot


Puzzles

https://github.com/James-P-D/WordSearch

Wordsearch puzzle solver with UI in Java using Swing and searcher in Erlang.

Screenshot


https://github.com/James-P-D/Sudoku

A Sudoku puzzle solver with algorithm in F# and UI in C# Winforms

Screenshot


https://github.com/James-P-D/PegSolitaire

Peg Solitaire solver in OCaml

Screenshot


https://github.com/James-P-D/Traintracks

Traintrack puzzle game in Python

Screenshot


https://github.com/James-P-D/GeniusSquare

Genius Square puzzle solver in Python

Screenshot


https://github.com/James-P-D/Hangman

Hangman in SNOBOL

Screenshot


https://github.com/James-P-D/ConsoleSnake

Snake game for Windows console in C/C++

Screenshot


https://github.com/James-P-D/Pong

Pong game in x86 Assembler

Screenshot


https://github.com/James-P-D/NQueens

N-Queens solver in Common Lisp

Screenshot


https://github.com/James-P-D/MagicSquare

Magic Square solver in Prolog

Screenshot


Bluetooth

https://github.com/James-P-D/AdafruitBLESniffer

Bluetooth sniffer for the Adafruit Bluefruit device in Python

Screenshot


Lora

https://github.com/James-P-D/LoStikLoraChat

Simple text chat client for the LoStik Lora device using Python and PySimpleGUI for UI

Screenshot


https://github.com/James-P-D/MeshSpeech

Meshtastic desktop client with text-to/from-speech in Python

Screenshot


CardPuter

https://github.com/James-P-D/ToneGenerator

DTMF, Blue, and US/UK Red Box tone generator for the Cardputor device in Arduino Sketch (C++)

Screenshot


https://github.com/James-P-D/FlipperZeroIRPlayer

Program for playing Flipper Zero IR files on CardPuter device in Arduino Sketch (C++)

Screenshot


Miscellaneous

https://github.com/James-P-D/Maze

Maze Generation and Solving in Python

Screenshot


https://github.com/James-P-D/Fractals

Fractals with zoom functionality in Python and Julia

Screenshot


https://github.com/James-P-D/BitwiseImages

Images created with bitwise operators in Julia

Screenshot


https://github.com/James-P-D/MSPainter

Picture generator using MS Paint in Python

Screenshot


https://github.com/James-P-D/GraphPlotter

Graph Plotter in Python using Tkinter

Screenshot


https://github.com/James-P-D/ImageToANSI

Image to ANSI converter in Perl

Screenshot


https://github.com/James-P-D/TextToSpeechTail

Console tail application with online/offline text-to-speech in Python

Screenshot


Dump Folders

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

Pinned

  1. Logo Logo Public

    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.)

    C# 2

  2. SYNScan SYNScan Public

    A command-line port scanner using raw SYN packets

    C 1 2

  3. PegSolitaire PegSolitaire Public

    Peg Solitaire solver in OCaml

    OCaml

  4. GeniusSquare GeniusSquare Public

    Genius Square puzzle solver in Python

    Python 6

  5. AdafruitBLESniffer AdafruitBLESniffer Public

    Bluetooth sniffer for the Adafruit Bluefruit device in Python

    Python 1

  6. FlipperZeroIRPlayer FlipperZeroIRPlayer Public

    Program for playing Flipper Zero IR files on CardPuter device in Arduino Sketch

    C++ 11 1