term 4

Big Picture - Term 4 2024

overview

  • Rewriting Foodbot
    • DDBKit
  • Big Picture Internship
  • Cyber Security Careers Day
  • Stuff I've done this year
    • Projects
    • Accomplishments
Big Picture - Term 4 2024

food-bot

Food-bot is a Discord bot I made that just sends of pictures of food.
I made it back in 2021 as a sort of joke, but it's now grown to over 1000 servers.
This term I decided to rewrite food-bot in Swift, the same programming language used by Apple and other developers to write apps for iPhone and iPad.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

food-bot

I wanted to rewrite food-bot as the original version was using up way too many resources, and rather than figure out why, I just decided to rewrite the entire bot.
I decided to rewrite the bot in Swift, as I've used the language for a bunch of different projects before, like Watchcord and Blockly, and also because someone I knew online recently made a discord bot framework for Swift. (more on that later)

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

food-bot

One of the biggest issues there was with food-bot was that it used up way too much memory on my server, using 500mb on average but sometimes getting up to 800mb, which is almost 10% of my server's total memory capacity.
After rewriting the bot in swift, the memory usage has gone down to just above 160mb, which is a massive improvement.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

quick bits

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS
Recreation of a slide from my term 3 presentation

food-bot

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

DDBKit

The core framework my bot uses is a framework called DDBKit, which was developed by the same person I asked back in term 1 about various apple watch related things.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

DDBKit

Since the framework is still in development, I asked if I could be a tester for it, and they agreed.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

DDBKit

They also asked me if I could add documentation for various docker-related things to DDBKit.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

DDBKit

I happily added a docker template to their project, and also wrote some documentation on docker as well.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Internship

At the Big Picture office I've been working on a website for B-Unbound, a program similar to Big Picture, but aimed at kids who are no longer in school. I've also been helping out with managing and updating various other wordpress sites, and repairing a macbook or two.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Internship

This is what the site currently looks like, with an embedded google form at the bottom for people to register interest.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Internship

I also helped set up a piece of software called Cloudpanel, which is a control panel used for creating and managing websites.
I'd attach a screenshot of it, but I can only access the panel at the offices because of the firewall.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Cyber Careers Day

On Wednesday, I went to the DOE offices for a cyber careers day. We got panel talks from various people and organizations, including the Department of Home Affairs, CyberCX, and of course the Department of Education itself.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Cyber Careers Day

We did a Capture the Flag challenge in groups as well, where you had to find a "flag" in various forms of media and programs, and whichever group got the most points would win some cool prizes.
My group ended up coming 3rd in the competition, and we got water bottles as prizes (amazing prizes, i know)

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Cyber Careers Day

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Cyber Careers Day

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Cyber Careers Day

In the image on the left, theres an entire ebook encoded within the image, and hidden within that ebook is the flag.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Projects

This year, I've worked on many cool projects.
and im gonna run through all of them really fast

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Food-bot

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Food-bot

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Watchcord

This year, I've been working on Watchcord, a third party Discord client for Apple Watch.
I started development last year, with a very early prototype, and now it's grown into a client that's (almost) suitable for everyday usage.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

My website

I also redid my entire website this year, using Astro and Tailwind, which are frameworks for building really good looking modern websites.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Blockly

Blockly is the game I made for the Swift Student Challenge earlier this year.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Scope

This is a very new project I haven't spoken much about.
Scope is a project to make a Discord client for desktop, aimed towards power users.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Scope

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Scope

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Accomplishments

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Swift Student Challenge

With my submission, Blockly, I was selected as one of the 350 winners of the Swift Student Challenge!
I won a pair of Airpods Max ($900), and a free year in the Apple Developer Program ($150/year)

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Swift Student Challenge

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Swift Student Challenge

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Swift Student Challenge

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Swift Student Challenge

I also got invited out to Apple's offices in the city for a celebration day, which was really fun!

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

UNE

I've almost completed my diploma in Information Technology at UNE as well, I'm just missing one unit.
I missed out on the one unit because there was a visual bug the Open Universities Australia dashboard, which is a bit of a shame, but the units available for this trimester sucked anyways.

FOODBOT .. DDBKIT .. INTERNSHIP .. CYBER .. PROJECTS .. ACCOMPLISHMENTS

Reflection

Since the start of Big Picture, I've come a really long way.
I've made a ton of really cool projects, met a bunch of really cool people, both in person and online.
There is SO much more I would've put in this presentation, but it would probably run wayy too long.

Big Picture - Term 4 2024

you might remember me talking about this at the end of my presentation last term

here you can see the bot using 159mb, which is a huge improvement to the 807mb in the previous screenshot

this is great, but there's more to it (lead into ddbkit)

DDBKit stands for declarative discord bot kit

Docker is a very useful piece of software for developing and running apps.

Instead of every app running on the host computer itself, they run in seperate containers, which make apps way easier to manage.

They also make builds very easily reproducible, as something may work on one system, but not on another, but with docker it's guaranteed to always work.

It's like having a mini computer inside your computer dedicated to running one app

I built this site using the same frameworks and technologies I used for my personal and watchcord websites.

Showcase the site, go to http://localhost:4321, and run the dev server!!

image clickable btw

Here's the platform we used to do the CTF, each challenge would involve something like "find the secret flag in this image"

Here's an example of one of those images

There is obviously some additional data stored in this image, but it's a bit of a challenge to extract it

and i'm gonna run through all of them really fast

First off, Food-bot.

I've already spoken about this earlier in the presentation so here's some screenshots.

This is a graph of the commands run every hour and how many servers the bot is in. The commands graph stops because I haven't implemented that in the new rewrite yet. Right now we're at 1003 servers

I've also made an entire website for it (click the title)

click title

The main objective is to rotate all the cubes so that they point to the "finish line" which is the glowing yellow cube

won me the swift student challenge

I found out about this project through a post online , and I decided to get involved.

As you can clearly tell, it's still a very early prototype, and nowhere near finished. But that's not the main point of this.

Scope is the first actual team project I've ever been involved with.

This is a list of all the pull requests on the project

A pull request is basically proposing changes to the project

I'm really excited to work on this as its the first time I've ever properly collaborated with people to make a project, and also because I get to meet a bunch of really cool people

UTS tech fest 2023 and 2024, Noble Steed games, together2, visiting other schools, work experience at AIE, there has been SO much cool stuff

And there's only gonna be more cool stuff as well, I'm going to a student-run game jam on the weekend, where people get split up into teams of three and are tasked with making a game in a day. The games are then judged and whoever makes the best game wins some really cool prizes!

Without big picture, I wouldn't have been able to do any of this stuff.