SecretSheppy

I am primarily a full stack web developer, with desktop app development experience in nw.js. I have significant experience in JavaScript (pure, jQuery and node), HTML and CSS. I thoroughly enjoy exploring new languages. My current favourite language is go (Golang) and I am currently working on several projects in go.

My Pages Deployments

Occasionally I write something useful which I then host on GitHub pages. These projects are linked below.

String of cards to Unicode playing cards

Takes a string of playing cards formatted as Card {value=Two, suit=Diamond} and converts it into a string of Unicode playing cards.

Array of points to equation of a circle (Least Square Circle)

Calculate the equation of the circle of best fit from an array of larger that three points. The user can disable certain points, and the equation history is tracked, allowing the user to see how different points affect the result.

My Repositories

My main repositories that I feel are useful enough to be publicly released are listed below. Some of these are much, much older than the commit history would have you believe so the code quality is not always the best. The development of all the below projects significantly contributed to my journey to advance as a developer, each teaching me several new things about integral structure of programs, working in teams or leaning a language.

ArmorPaint Cloud Content Manager

ArmorPaint Cloud Content Manager is a command line application for downloading, updating, and removing the cloud resources for ArmorPaint on your local machine. I built it after I tried and failed to use the cloud textures when experimenting with the ArmorPaint 3D texture painting tool due to an error in the application.

Haskedit

Haskedit is my most recent attempt at a “proper” desktop application. It is a text editor for Haskell on windows that provides all the basic essentials whilst also being relatively light weight in terms of memory usage. I built Haskedit as I was required to use Haskell for a recent project and I felt that there were no editors that provided the experience I wanted to work with.

Ciphershare

Ciphershare is an encrypted filesharing website that I built with three friends at a 24 hour hackathon. It is built in go using the gorilla web framework. I was the only person on the team with go experience, so working in the team was a fun and rewarding challenge.

NX1C web forum

A pure PHP reddit like forum service. I built it because I was interested to see what a pure PHP service would be like in a world where new services are now almost exclusively being developed in advanced web frameworks (I’m discounting WordPress 🤣). I found this was a fun side project and PHP was a lot more interesting that I had anticipated (though having to use the $ to name every variable is very very tedious. I also developed an “ORM” like syntax for generating SQL statements (as I was using a direct SQL connection).

Go Snake

Go Snake is an implementation of the classic snake game in go, but the game plays itself. This is a re-implementation of a project I wrote in C++ a long time ago that I wrote whilst learning go to test my knowledge.

NX1C private chat

A decentralised end to end encrypted messaging service. The default encryption provided by this project is terrible, but I wrote it to try out making an encryption algorithm (with no research 🤦‍♂️). That being said, I knew that would turn out to be the case so I developed the app with a standard encryption interface, so end users could just swap out the default encryption package for a custom one with very little trouble.

Open Explorer

Open Explorer is a project I will one day revisit and revitalise. I built Open Explorer because I really like the Windows File Explorer experience, and I wanted to create a file browser that would give the same experience on all platforms. I did achieve this goal but I had not planned this project, so I ended up with a very inefficient core structure and consequently relatively poor code quality. This project is much older than when I committed it to GitHub.