Code Monkey home page Code Monkey logo

comrade-next's Introduction

Hi, I'm Mingde ๐Ÿ‘‹

I am an incoming MASc student at the University of Toronto Institute for Aerospace Studies, having completed my undergraduate studies in Aerospace Engineering at U of T as well. I have previously worked at MDA on Canadarm2, and at SpaceRyde on a Canadian-developed smallsat launch vehicle. My key interests are in aerospace vehicle dynamics and control, trajectory planning and optimization, and orbital spacecraft. My educational background is in astrodynamics, control systems, numerical methods, and optimization.

I am a former subsystem lead at the University of Toronto Aerospace Team Space Systems division having worked on trajectory analysis and mission planning for a 3U imaging cubesat mission. My former team has just successfully launched their first mission into orbit in October 2023!

Read my undergraduate thesis!

๐Ÿ”ญ Iโ€™m currently working on...

๐ŸŒฑ Iโ€™m currently learning...

  • Spacecraft dynamics and orbital mechanics ๐ŸŒŽ
  • Higher performance numerical methods for dynamic systems ๐ŸŒŒ
  • Navigation, state estimation, guidance, and control for aerospace vehicles ๐Ÿš€

๐Ÿ˜Ž Cool things I have previously worked on...

comrade-next's People

Contributors

itchono avatar

Stargazers

 avatar

Watchers

 avatar  avatar

comrade-next's Issues

New Emoji System

Parity with Comrade V5 / Ground Dragon

  • Inline emotes
  • Big emotes, possibly re-implemented as stickers

Backend improvements

  • Modifications to storage format of emojis, will need a system to port old ones to new

New Features

  • Loading

Safe length embed

In discord utils, add an embed which automatically shortens fields upon serialize (or modification)

Page 0

  • keep button enabled always
  • But make it so that previous page for page 0 yields an error

Log Separation

Put comrade-specific logs under a "Comrade" logger name.

The interaction.py logs are too cluttery when set to INFO.

Update and Integrate WumboDB

Upgrade WUMBODB for storing all non-performance critical databases (e.g. server configs) and link as a git submodule.

In-memory LRU cache

  • Add an OrderedDict to relay, which is empty on startup, and fills as queries are made to find_blob_url and create_blob

90%+ Code Coverage

  • updater utils
  • role manager module
  • Relay: start with documents already in a temporary collection

Spoiler_Imgs for nhentai gallery doesn't work right now

Due to the way the cache is implemented, there is no distinction between the spoiler'd vs unspoiler'd versions of the image. Modify the call to the mirror blob function to include a {"spoiler": True/False} field.

Also benchmark the performance between the two solutions to see if it actually is worth it to cache! (the overhead of sending a message takes a while)

CD Using Webhooks

Use the relay system; have the bot listen to GitHub webhooks, and auto-patch + restart

Previous Page Button

In the pre-emptive cache, add functionality to look behind as well, for example when gpage is called.

Also, add a "previous page" button

Modify lib/echo to use inspect.signature to copy function signature

Using the inspect module, we can modify the signature of a function when viewed for type hinting. This allows you to turn a signature like:

def func(foo, *args, **kwargs):
   ...

into a signature that mimics another function.

We will copy over relevant aspects of the signature from Webhook.send.

Implementation Details

  • Use decorators to keep things clean

Birthdays

Special member of the day for when it's someone's birthday

Implementation

  • Some way for users to add their birthday into the system
  • Integrate into Member of the day

Dependent on the existing MOTD system, or some temporary workaround

Pre-emptive Caching in NHentai Galleries

Modify existing caching behaviour implemented in #55 .

Based on difficulties seen in #60 (comment), one solution to maintaining a "warm cache" is to pre-emptively cache images when a gallery is first requested.

Since storage space is not a concern, this solution gives the best possible performance.

NHentai Title Block Parser Bug

Fails when parsing a title such as:
aaa] bbb because of improperly structured braces.

Change parser to:

  1. Fail gracefully
  2. Change the approach taken to special case titles like these e.g. if the stack is empty

NHentai System

Goals

Requirements for Feature Parity

  • View any available six digit work
  • Search for tags
  • Multiple-proxy system (using other providers, Google Translate proxy) for Cloudflare bypass

New Ideas to Explore

Implementation Plan

  • Make a new NHentai library under lib, which abstracts away the scraping operations from the commands, similarly to booru_lib
  • Make the commands interface under modules, and make it similar to what Ground Dragon uses

Documentation of Commands

Document the slash commands.

Maybe also add a lorem ipsum function to the bot for filler text

Standard format

/command_name

(Short Description)

Invocation

Argument Description Valid Values

Result

Demo Gif

(If applicable)


Commands to Document

  • /status
  • /log
  • /remind
  • Role management
  • booru
  • nhentai gallery
  • nhentai search
  • nhentai gpage

Command Scope and Permission

  • Make sure correct commands are disabled in DMs
  • Make sure owner only commands are properly configured per guild (test with alt account)

Harmonization of Datetime vs Arrow

Try to replace all instances of datetime with Arrow.

Currently there is an issue in the /status command.

Inside /status, use .humanize, and difference_only

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.