Giter Site home page Giter Site logo

cnmn's Introduction

Grading Web Tools

This repository contains an HTML/CSS validator frontend and a plagiarism checker service developed to help streamline my work grading labs as a tutor at Georgia Southern. These services are no longer in use. and I cannot guarantee that they work.

It used the W3C HTML validator API, and CSSHint on the backend.

cnmn's People

Contributors

bclindner avatar

Watchers

 avatar

cnmn's Issues

Alpine build

An Alpine build would be excellent for this system as it would shave 600+MB and speed up build time tremendously compared to the existing Debian image. However, Alpine imagemagick does not have support for liblqr which prevents use of liquid rescale, which is IMO essential as the bot this replaced was primarily used for image crunching.

Cleaner handling of music metadata retrieval

Current implementation functionally pulls the track info twice (once at queue time, the other at runtime). Chances are nonzero for a YouTube ratelimit if requests happen too often. Also, this introduces ~1-2 extra seconds of latency that should be unnecessary

YouTube API is the obvious choice but I think we could also get away with streaming the URLs returned by the info JSON directly with a little finagling

Command aliasing

c-music play is too long, being able to define a regular way to do an alias for certain common commands, i.e. c-mp for this one, would be nice

CNMN.Image.crunch efficiency concerns

Current image crunch pipeline is decent, but reliance on Mogrify (& the underlying ImageMagick CLI) seriously limits efficiency. Another transformation method would be preferred.

See Wikipedia article on seam carving - this is a well-known algorithm, and there are several ways I can think of to go about this:

  • Direct use of ImageMagick API via NIF
  • Direct use of liblqr via NIF
    • Ideally it would be nice to put out a bounty or donate code to remove glibc as this is the only blocker for #8
  • Write the seam carving algorithm directly into Elixir/Erlang (probably via something GPU-able like axon or nx)

Basically any of this work should probably go in its own separately published Hex library unless it is extremely brief to write

Add test step to Containerfile

A working container should probably pass mix test before being put into a runtime configuration.

Only caveat I see here is that this may require the container dependencies to be installed during tests, which will incur more time for uncached builds.

Use application commands

Potentially something to look into, but not absolutely a requirement - application commands would provide a cleaner syntax for the bot as a whole, but would require more general code + structure. A hybrid approach is technically possibly but full conversion seems like the move here if this ends up being the future of the bot

Limit queue when listing queue items

Discord will definitely deny the embed if the queue printed is too long; a static number like 10, 20, 50 tracks max is best here. Depends on Discord's limits.

Listing should also always show queue length if truncated.

More dynamic runtime configuration

Ideally use of a YAML/TOML/JSON file within the config construct would be a lot nicer for configuring on a per-deployment basis; Elixir's Config structure is designed around the ability to map settings in this way, so it shouldn't be too difficult. This would make deployment a lot cleaner as you could point the bot to a config file rather than pass in envs or a .env file directly

I will say I'm leaning towards TOML: its syntax is cleanest and it could easily represent image transformers

CNMN.Music.Manager: tests

This system is probably very brittle and its GenServer backend calls are completely removed from the Nostrum lib so it should be a good candidate for learning ExTest's ins+outs

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.