Captain ALM
d41851cfbc
Some checks are pending
ci/woodpecker/push/build Pipeline is pending
September Update.
342 lines
19 KiB
YAML
342 lines
19 KiB
YAML
#This file is (C) Captain ALM
|
|
#Under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License
|
|
cssBaseURL: "resources/assets/base.css"
|
|
cssDarkURL: "resources/assets/dark.css"
|
|
cssLightURL: "resources/assets/light.css"
|
|
jScriptURL: "resources/assets/index.js"
|
|
noVideoImageLocation: "resources/assets/novideo.png"
|
|
playVideoImageLocation: "resources/assets/video.png"
|
|
logoImageLocation: "resources/assets/logo.png"
|
|
moonImageLocation: "resources/assets/moon.png"
|
|
sunImageLocation: "resources/assets/sun.png"
|
|
sortImageLocation: "resources/assets/sort.png"
|
|
headerLinks:
|
|
Main Portfolio: "https://portfolio.captainalm.com/"
|
|
Root Site Home: "https://www.captainalm.com/"
|
|
LinkedIn: "https://www.linkedin.com/in/alfred-manville/"
|
|
about:
|
|
title: "Alfred Manville (Captain ALM)"
|
|
content: >
|
|
<p>
|
|
Hello, I'm Alfred Manville (#age# Years Old) and a third year student at City, University of London.
|
|
I'm a free and open-source developer who enjoys networking my laptops together,
|
|
writes network software to communicate between them and then tries to break said software.
|
|
I also have a <a href="https://youtube.com/c/CaptainALM">Youtube Channel</a> which is in the process of being resumed from a hiatus.
|
|
</p>
|
|
<p>
|
|
On the programming side, I know Visual Basic .net, C# .net, C, Java, Go, Javascript, C++, Python,
|
|
Processing and Microsoft Smallbasic (I have also dabbled in Bash/Batch).
|
|
I am currently in the progress of writing infrastructure software in Go, in the past, I wrote a <a href="https://github.com/Captain-ALM/CALM-Console">command console</a>
|
|
in VB .net for my own pluggable libraries (I created a CMD emulator to get past the school disabling interactive CMD) and some <a href="https://github.com/Captain-ALM/CALMNetLibSamples">
|
|
network communication applications</a> (Including a peer-to-peer <a href="https://github.com/Captain-ALM/C-ALM-VOIP">VOIP client</a>
|
|
using NAudio as the audio library and my own network wrapper library, however, it is in need of bug-fixing at the moment).
|
|
</p>
|
|
<p>
|
|
My github username is <a href="https://github.com/Captain-ALM">Captain-ALM</a> and has half my public programming projects,
|
|
the other half is located at: <a href="https://code.mrmelon54.com/alfred">https://code.mrmelon54.com/alfred</a>
|
|
</p>
|
|
<p>
|
|
On the cracking / hacking side, I've used virtual machines a lot (Mainly infrastructure testing
|
|
but I did at one point try creating and breaking into a test windows domain network I had setup).
|
|
I've also used VMs to pull perform a PXE boot off a network and analyse the partially deployed image
|
|
(And this is why the deployment servers should be switched off when unneeded, especially since PXE
|
|
auto-domain-join would store its credentials in the image).
|
|
I also played around with <a href="https://github.com/Captain-ALM/rdpccgs-ccgsrdp-">accessing the RDP servers</a>
|
|
when I was in secondary school (Turns out remote apps is just a glorified application auto-launcher with window size detection).
|
|
Here is <a href="https://github.com/Captain-ALM/op_ctrl">Operation Control</a> (Stylized: op_ctrl) used for same-computer exploiting
|
|
by wrapping target applications run by other users (Such as via RDP Remote Apps) and then starting a master server to send arbitrary
|
|
.net DLLs to execute on the target slaved client.
|
|
</p>
|
|
<p>
|
|
I also <a href="https://subsection.captainalm.com/">bake bread</a> (Mostly learnt from my grandma); although this sub-site is still under construction.
|
|
I also play video-games (Check my Youtube Channel or my <a href="https://www.gog.com/u/Captain_ALM">GOG Profile</a>) and am an expert at using lower-end hardware.
|
|
</p>
|
|
<p>
|
|
I used to do Karate (Kyokushin Brown Belt) and I wish I could still fit my bike.
|
|
Here is my <a href="https://cdn.captainalm.com/download/keys/alfred@captainalm.com.asc">GPG Key</a> for my email address.
|
|
</p>
|
|
<p>
|
|
My CV is available in the following formats: ( <a href="https://cdn.captainalm.com/download/cvs/AlfredManvilleCV-2023.docx">DOCX</a> | <a href="https://cdn.captainalm.com/download/cvs/AlfredManvilleCV-2023.pdf">PDF</a> )
|
|
</p>
|
|
thumbnailLocation: "resources/assets/imageofyou_t.jpg"
|
|
imageLocation: "resources/assets/imageofyou.jpg"
|
|
imageAltText: "Image of me."
|
|
birthYear: 2002
|
|
contactEmail: "alfred@captainalm.com"
|
|
entries:
|
|
- name: "Bootcamp 2021: Ninjaformer GUI"
|
|
content: >
|
|
<p>
|
|
My first programming task at City, concluding the 2 week 2021 Programming Bootcamp,
|
|
although I have only spent 3 days programming this and was a tad bit too ambitious.
|
|
(I could have started earlier though)
|
|
</p>
|
|
<p>
|
|
This Processing project show that I can use arrays, loops, mouse and keyboard interaction and geometric transforms.
|
|
The project contains a GUI library that I made to create the menu system for what could have been the Ninjaformer game.
|
|
</p>
|
|
<p>
|
|
Unfortunately, while the code for loading tile, sprite and level information exists (JSON, sprite sheet support);
|
|
I ran out of time before the submission to actually even start on the game. But you can play around with the main code and build your own GUIs too so...
|
|
</p>
|
|
<p>
|
|
Here is the repo: <a href="https://github.com/Captain-ALM/Ninjaformer-Processing">https://github.com/Captain-ALM/Ninjaformer-Processing</a>
|
|
</p>
|
|
<p>
|
|
The original video is available here: <a href="resources/stream/vid1.mp4">resources/stream/vid1.mp4</a>
|
|
</p>
|
|
startDate: "01/10/2021"
|
|
endDate: "31/10/2021"
|
|
videoLocation: "resources/stream/vid-bootcamp.mp4"
|
|
videoContentType: "video/mp4"
|
|
videoThumbnailLocation: "resources/assets/bootcamp-vid.png"
|
|
thumbnailLocations:
|
|
- "resources/assets/pic1_t.jpg"
|
|
- "resources/assets/pic2_t.jpg"
|
|
- "resources/assets/pic3_t.jpg"
|
|
- "resources/assets/bootcamp-1_t.jpg"
|
|
- "resources/assets/bootcamp-2_t.jpg"
|
|
- "resources/assets/bootcamp-3_t.jpg"
|
|
imageLocations:
|
|
- "resources/assets/pic1.jpg"
|
|
- "resources/assets/pic2.jpg"
|
|
- "resources/assets/pic3.jpg"
|
|
- "resources/assets/bootcamp-1.jpg"
|
|
- "resources/assets/bootcamp-2.jpg"
|
|
- "resources/assets/bootcamp-3.jpg"
|
|
imageAltTexts:
|
|
- "Level select screen."
|
|
- "Empty content interface (Gameplay)."
|
|
- "Level editor screen."
|
|
- "Ninjagame source code."
|
|
- "Button image source code."
|
|
- "Sprite world source code."
|
|
- name: "City Game Project 2022: Ninjaformer (Alpha, Beta)"
|
|
content: >
|
|
<p>
|
|
My first major project at City (A Java Game), concluding 2.2 Months of programming.
|
|
This game uses the University provided game library (Which is just JBox2D extended).
|
|
</p>
|
|
<p>
|
|
Looking back on this, I wish I started earlier (Like January) that way I could have implemented all the features I wanted.
|
|
This project allows for levels to be designed within the program and allows them to be edited as XML outside the program.
|
|
</p>
|
|
<p>
|
|
The code is extensible and it is relatively straight forward to implement new features. There are a few bugs that can crop up
|
|
(Such as sticking to surfaces due to ground body updates) but I already know ways to fix them.
|
|
This project relies on part of a GUI library I built in it and I had to modify the CityGame library by extending it.
|
|
The audio and assets were also created by me, although they're a bit amateurish as I'm a computer scientist not an artist!
|
|
</p>
|
|
<p>
|
|
This game is designed to be a story based game... The tutorial level at the beginning of the game is the dream in which the main
|
|
character dreams of being a ninja, this allows for the player to learn the controls and basic mechanics of the game.
|
|
The next level is the training level in which the ninja trains within a monastery.
|
|
The final level allows the ninja to "complete" the game while exploring a set of caves.
|
|
</p>
|
|
<p>
|
|
The game contains a mechanism system allowing for the unlocking of portals (Doors) for the character to progress within and between levels.
|
|
The character contains a set of different stamina types, core stamina which if depleted causes a death, leg stamina which is a multiplier for
|
|
doing any action that uses legs and arm stamina which is a multiplier for doing any action that uses arms. The game contains a weapon system of
|
|
throwing stars, swords and throwable liquids.
|
|
</p>
|
|
<p>
|
|
Here is the repo: <a href="https://github.com/cityteaching/citygame2122-Captain-ALM"><strike><del>Not public due to university anti-plagiarism policy.</del></strike></a>
|
|
</p>
|
|
<p>
|
|
The original video is available here: <a href="resources/stream/vid2.mp4">resources/stream/vid2.mp4</a>
|
|
</p>
|
|
startDate: "25/02/2022"
|
|
endDate: "08/05/2022"
|
|
videoLocation: "resources/stream/vid-ninjaformer-2022.mp4"
|
|
videoContentType: "video/mp4"
|
|
videoThumbnailLocation: "resources/assets/ninjaformer-vid.png"
|
|
thumbnailLocations:
|
|
- "resources/assets/pic4_t.jpg"
|
|
- "resources/assets/pic5_t.jpg"
|
|
- "resources/assets/pic6_t.jpg"
|
|
- "resources/assets/ninjaformer-1_t.jpg"
|
|
- "resources/assets/ninjaformer-2_t.jpg"
|
|
- "resources/assets/ninjaformer-3_t.jpg"
|
|
imageLocations:
|
|
- "resources/assets/pic4.jpg"
|
|
- "resources/assets/pic5.jpg"
|
|
- "resources/assets/pic6.jpg"
|
|
- "resources/assets/ninjaformer-1.jpg"
|
|
- "resources/assets/ninjaformer-2.jpg"
|
|
- "resources/assets/ninjaformer-3.jpg"
|
|
imageAltTexts:
|
|
- "Cave level."
|
|
- "Tutorial level."
|
|
- "Training level (Editor mode)."
|
|
- "Main Menu screen."
|
|
- "Pause Menu screen."
|
|
- "Audio Settings screen."
|
|
- name: "Global Game Jam January 2022 : Shadow work"
|
|
content: >
|
|
<p>
|
|
I may have not done any programming for this (Even though I know C#) but I helped write a good chunk of the background story
|
|
(I also helped with the level design although it turns out 48 hours is hard to get polished stuff done in, so some stuff had to be axed).
|
|
</p>
|
|
<p>
|
|
Read about and get the game files from: <a href="https://globalgamejam.org/2022/games/shadow-work-8">https://globalgamejam.org/2022/games/shadow-work-8</a>
|
|
</p>
|
|
<p>
|
|
Download the windows executable from: <a href="https://cdn.captainalm.com/download/game/dist/ShadowWorkExecutable.zip">https://cdn.captainalm.com/download/game/dist/ShadowWorkExecutable.zip</a>
|
|
</p>
|
|
<p>
|
|
The Design Document is available here: <a href="https://cdn.captainalm.com/download/game/design/Shadow-WIP-Story-Info.pdf">https://cdn.captainalm.com/download/game/design/Shadow-WIP-Story-Info.pdf</a>
|
|
</p>
|
|
startDate: "20/01/2022"
|
|
endDate: "30/01/2022"
|
|
videoLocation: "resources/stream/vid-shadowwork.mp4"
|
|
videoContentType: "video/mp4"
|
|
videoThumbnailLocation: "resources/assets/shadowwork-vid.png"
|
|
thumbnailLocations:
|
|
- "resources/assets/shadowwork-2_t.jpg"
|
|
- "resources/assets/shadowwork-3_t.jpg"
|
|
- "resources/assets/shadowwork-4_t.jpg"
|
|
- "resources/assets/shadowwork-5_t.jpg"
|
|
- "resources/assets/shadowwork-6_t.jpg"
|
|
- "resources/assets/shadowwork-1_t.jpg"
|
|
imageLocations:
|
|
- "resources/assets/shadowwork-2.jpg"
|
|
- "resources/assets/shadowwork-3.jpg"
|
|
- "resources/assets/shadowwork-4.jpg"
|
|
- "resources/assets/shadowwork-5.jpg"
|
|
- "resources/assets/shadowwork-6.jpg"
|
|
- "resources/assets/shadowwork-1.jpg"
|
|
imageAltTexts:
|
|
- "Main Menu screen."
|
|
- "Controls screen."
|
|
- "Bedroom (Beginning game area)."
|
|
- "First Puzzle, duality keys."
|
|
- "Visualisation of in-game character split."
|
|
- "End of the game area."
|
|
- name: "City-University Portfolio"
|
|
content: >
|
|
<p>
|
|
This project is what's outputting this page at the moment! The backend is written in Go and there is both custom front-end Javascript and CSS!
|
|
The pages support theming and the entries can be sorted through Javascript or on the backend through GET parameters.
|
|
</p>
|
|
<p>
|
|
This project is under the BSD-3-Clause License, so if reusing, you must scrub references to me, the yml file this is written in is under
|
|
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
|
</p>
|
|
<p>
|
|
Find the source code here: <a href="https://code.mrmelon54.com/alfred/cityuni-webserver">https://code.mrmelon54.com/alfred/cityuni-webserver</a>
|
|
</p>
|
|
startDate: "13/07/2022"
|
|
- name: "Python Communicator"
|
|
content: >
|
|
<p>
|
|
After learning python for my portfolio development option, I wanted to showcase what I knew in python.
|
|
I usually make a network application in each of the new programming languages that I learn.
|
|
For the repo showing me learning python please go to: <a href="https://code.mrmelon54.com/alfred/LearningPy">https://code.mrmelon54.com/alfred/LearningPy</a>
|
|
</p>
|
|
<p>
|
|
This project is a message based network communicator written in python and has a module for networking.
|
|
The project allows the sending of text messages and files over a network.
|
|
It also comes with a nice twist, in that if you select the pickle protocol, you can inject code into another client by sending a specially crafted message!
|
|
</p>
|
|
<p>
|
|
Find the source code here: <a href="https://github.com/Captain-ALM/CALMPyNetworker">https://github.com/Captain-ALM/CALMPyNetworker</a>
|
|
</p>
|
|
startDate: "10/12/2022"
|
|
endDate: "10/12/2022"
|
|
videoLocation: "resources/stream/vid-pycom.mp4"
|
|
videoContentType: "video/mp4"
|
|
videoThumbnailLocation: "resources/assets/pycom-vid.png"
|
|
thumbnailLocations:
|
|
- "resources/assets/pycom-1_t.jpg"
|
|
- "resources/assets/pycom-2_t.jpg"
|
|
- "resources/assets/pycom-3_t.jpg"
|
|
- "resources/assets/pycom-4_t.jpg"
|
|
imageLocations:
|
|
- "resources/assets/pycom-1.jpg"
|
|
- "resources/assets/pycom-2.jpg"
|
|
- "resources/assets/pycom-3.jpg"
|
|
- "resources/assets/pycom-4.jpg"
|
|
imageAltTexts:
|
|
- "Text Messaging."
|
|
- "File Messaging."
|
|
- "Exploit Testing."
|
|
- "Failed Exploit Testing."
|
|
- name: "Group Project - AirVia ATS (AirTicket Sales)"
|
|
content: >
|
|
<p>
|
|
This group project was creating a Ticket Sales system for the fictional company AirVia LTD, for this the group had to both design the implementation and then write the code for it.
|
|
Unfortunately, the project was not finished to a state where all the required features were added in and while all of the backend functionality except for the reports existed,
|
|
the GUIs to view and control those backends was not available.
|
|
Examples of this include: Sales, Transactions, Discounts and Reports where no GUIs were created or finished for any of these components.
|
|
The design of the program was followed with a lot of adaptations (Rather than not being followed at all) and it architecturally made sense with the use of facade implementations;
|
|
The use of facade allowed for other people to code against an interface while waiting for a controller to be finished which extended the interface.
|
|
</p>
|
|
<p>
|
|
The database system was handled via an abstraction layer I designed and wrote myself which supports 'locking' a record for keeping consistency when multiple instances of the program are running.
|
|
This system uses an auxiliary table that has only the primary key column, a record is locked if it does not exist in the auxiliary table (Cannot delete) and is not locked if it does (Cannot insert);
|
|
This allows for atomic locking and unlocking of the record.
|
|
The implementation requires the record locked for safe access (Loading, Storing).
|
|
The abstraction layer makes use of two base classes, one for a single record and one for a table; with tha table one allowing the creation and deletion of the extending table via a schema and name being provided (As seen in the source code).
|
|
I also developed a backup system for the database that supports any table with the specifically supported data types used in the tables defined in the schema - removing the need to use third-party programs like SQLDump.
|
|
</p>
|
|
<p>
|
|
In the end, the following features were implemented: Login, Help / Error / Status Bar, Account System + GUI, Blank Types + GUI, Blanks + GUI, Customers + GUI, Discounts, Flexible Discounts, Sales, Transactions, Refunds, Dashboard + Notifications, Database Interfacing + Backup and Rates + GUI.
|
|
</p>
|
|
<p>
|
|
Find the source code here: <a href="https://github.com/karansambee/IN2018-Team-Project/tree/master">https://github.com/karansambee/IN2018-Team-Project/tree/master</a>
|
|
</p>
|
|
startDate: "01/02/2023"
|
|
endDate: "30/04/2023"
|
|
videoLocation: "resources/stream/vid-groupproject-2023.mp4"
|
|
videoContentType: "video/mp4"
|
|
videoThumbnailLocation: "resources/assets/groupproject-vid.png"
|
|
thumbnailLocations:
|
|
- "resources/assets/groupproject-1_t.jpg"
|
|
- "resources/assets/groupproject-2_t.jpg"
|
|
- "resources/assets/groupproject-3_t.jpg"
|
|
- "resources/assets/groupproject-4_t.jpg"
|
|
- "resources/assets/groupproject-5_t.jpg"
|
|
- "resources/assets/groupproject-6_t.jpg"
|
|
- "resources/assets/groupproject-7_t.jpg"
|
|
- "resources/assets/groupproject-8_t.jpg"
|
|
- "resources/assets/groupproject-9_t.jpg"
|
|
- "resources/assets/groupproject-10_t.jpg"
|
|
imageLocations:
|
|
- "resources/assets/groupproject-1.png"
|
|
- "resources/assets/groupproject-2.png"
|
|
- "resources/assets/groupproject-3.png"
|
|
- "resources/assets/groupproject-4.png"
|
|
- "resources/assets/groupproject-5.png"
|
|
- "resources/assets/groupproject-6.png"
|
|
- "resources/assets/groupproject-7.png"
|
|
- "resources/assets/groupproject-8.png"
|
|
- "resources/assets/groupproject-9.png"
|
|
- "resources/assets/groupproject-10.png"
|
|
imageAltTexts:
|
|
- "Logon Interface."
|
|
- "Administrator Dashboard Interface."
|
|
- "Blank Modifier."
|
|
- "Customer Creator."
|
|
- "Disabling an Account."
|
|
- "Rate Creator."
|
|
- "Blank Type Editor."
|
|
- "Help on Force Unlocking (Database Manager Interface)."
|
|
- "Account Editor on a Manager within The Dashboard Interface."
|
|
- "Part of the Main.java source code Screenshot."
|
|
- name: "City-University Promotional Video"
|
|
content: >
|
|
<p>
|
|
Here, I star in an interview for City, University of London's Promotional Marketing Campaign. Join <a href="https://www.city.ac.uk/">City</a>!
|
|
</p>
|
|
<p>
|
|
Find the video here: <a href="https://www.youtube.com/watch?v=tOccImgskec">https://www.youtube.com/watch?v=tOccImgskec</a>
|
|
</p>
|
|
<p>
|
|
Find the general School of Science and Technology video here: <a href="https://www.youtube.com/watch?v=pkTCf4CWFSY">https://www.youtube.com/watch?v=pkTCf4CWFSY</a>
|
|
</p>
|
|
startDate: "05/06/2023"
|
|
endDate: "05/06/2023"
|
|
videoLocation: "https://www.youtube.com/watch?v=tOccImgskec"
|
|
videoContentType: "text/uri-list"
|
|
videoThumbnailLocation: "resources/assets/citypromo-vid.png"
|