We've got work to do, fam. Is that going to be a website? A desktop application? A IOT-integrated AI to take over the world?
Nobody knows. So, to organize what COULD be done, we've got this list with some ideas to shoot around. Not natepisarski or rypriore? Don't even want to work?
Doesn't matter. Leave ideas, and they WILL be done by the end of the winter semester.
Team structure and branching model is at the bottom of this document, so this will be like our bible throughout the winter.
Order of ideas so far (easiest to hardest): Wolf, Hissyfit, Codebattle, Playground
** Technologies**
- Javascript
- Jquery
- CSS
- HTML
- Linux (digitalocean droplet)
There is something out there that (very accurately, mind you) reads text, and tells you the basic idea of what you wrote.
I gave it "I told you we should implement that with a base class, not an interface" and it said it was "95% angry, subject: Java".
So the idea here would be to develop a google chrome extension that hooks up to that service, and analyzes when you're typing. It will show a live update when clicked saying how angry / sad / joyfully what you just wrote was, and maybe the subject.
Technologies
- Linux / BSD Unix
- Compile Utilities (gcc, javac, ghc, all the compilers)
- Sandboxing (jails? docker?)
- CSS
- HTML
- Javascript
- Jquery
- C#
- ASP.NET
- Sqlite
When you create a (true) command line application (like we would have in 112 / 216 if it wasn't for BluJ (*sigh*), you can pass it arguments.
So, git add
is the git program with the "add" argument. Playground would host programs written by users, and let you hook up
the outputs to inputs. So, you could do "git (echo add)" through a web interface, by just clicking boxes. "echo add" would just
print "add", and then that would be passed to git.
This involves N-tree.
Technologies
- CSS3
- Sqlite
- Jquery and AJAX
- Java
- ASP.NET / Spark
Programming challenges are posted onto the website. Users must make programs to match the specification of the problem, just like in the Advent of Code challenges.
However, users are scored based on how fast their program runs. The fastest user is crowned every week.
Something like this wouldn't be hard to get users for either.
Technologies
- Java
- HTTP
- HTML, CSS, Javascript, Jquery
You can upload any file, but as soon as it's downloaded successfully once, it's removed from the server without a trace. This makes it like a one-time-use dropbox or flashdrive.
The advantages are: privacy for the user, cost for the people hosting it (us), and maximum convenience.
It's the most doable out of any of these ideas.
Technologies
Java OR C#
A simple virtual machine. Originally, it allows us to create (and program in) our own version of binary language. Eventually you can make your own language that runs on the VM, like Java.
Technologies
Java OR C#+F#
Pretty-bad-encryption is a model of key-based encryption (based on the popular PGP program - "Pretty Good Privacy"). The encryption doesn't rely on huge prime numbers like PGP, but rather on translation strings. So you could define a string that works with
book
To generate a string like
gi4m
With a translation string along the lines of ai(5)di(5)antd(13)ai(2)
ai = Alphanumeric Increase, di = Alphanumeric decrease, antd = Alphanumeric-numeral translation decrement
Technologies
C# would be best, Java... passable.
Compression is the act of shrinking a file. So, when you make a .zip file, it not only bundles the files together, but it actually makes them smaller. It does this by doing checks, like converting UTF-8 encoded bytes to simple ASCII integer values where possible, removing all duplication, etc.
Of all of the compression algorithms ever created, none have ever used the approach that CompressionMaster would use.
Everything on your computer is a string of binary values. I.e, 1 and 0. Oftentimes, since they are made of simply 1 and 0, they repeat. So, this following string is 10 bytes:
1110110001
Notice the repeats? We can recreate that binary string with:
310213014(10)