Skip to content

̶̷̧̜̯̰̰̦͔̻̻̩̎̊ͬ̋̈͑ͩ̓͐g̒̿͂̾̅̀̑͗̈́̚̕҉̤̙̭͙̼͈̺̫̻̲̤̞̳̖͡͡ͅg̷̖̣̖̜̑̉̽̐̂͂̃ͬ̆̀͗̉ͮͅg̡̨͊͐ͩ̎̃ͣ̾̄̇̀̇̂̃͂̍̊͋̚͠͏̟̣̻͎͢g̡̼̝̱̬͙͓̝̞͇͓̊́͂͌̊̍ͨ̑ͭ̅̕g̼̼̯̣̲̙̗̦͈̫͖̪̭͖͇͔̦̱̠̅̓͑͂ͬ̂̏͒͆̋ͦ͑̾͌͒̓̅̚͠g̨̛͔̖̙̜̫̙͈͚̮̤̽ͬͦ̽̄̅̅͟͝͞g̍͊̅͌͂͏̨̢̮̠̠̞̲̙g̨ͨ̅̐ͧͪ͏͇͍̖͎g̷̊̆ͦ̄͋͝҉̫͓̘͓͉̪̗̰̻̭̮̜̩̼̱͕͖̹̪ġ̴̢̹̰͓̝̠̯͙̗̲͈̯̰̦͓̜̤̳̞ͭ̓͂̽ͦͣ̈͌̒̆̊́g̢̨͉͍̘̲̦̰̭̤̗̮̦̬̝̘͉͒ͯ̉̿̔̂͟͜͡g̢̢̼̥͚͍̰̘̟̰̮̯̠ͨ͑͗̃̈́̃́ͭ̽̈ͫͅģ̉͛̊̈́̋͑̃͐̔ͥ̀̐͛̃ͬͨ͏͓̀…

Notifications You must be signed in to change notification settings

StantonR16/Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 

Repository files navigation

Portfolio

This contains documentation and reflection about my code and projects.

epic and also g

SHUT IT DOWN


Reflection / development

When I typically write code, I have a good idea of how I'll logistically implement the code. I tend to write a "rough draft" of the code, then later refine it; I usually don't write pseudocode. I also ensure my code runs as a system and everything works interdependently so future refactoring can be done efficiently.

See more

Most of the pride I have as a programmer comes from the code I write outside of class. All of these projects I made independently. Here are a few projects I'm proud of:

  • My most recent project is my C# library, RazorSharp.

    • I also wrote a few articles on the code I wrote documenting .NET internals.

    • This specific code snippet uses pointer manipulation and pointer arithmetic which helped me understand pointers. To summarize the function, it returns the memory address of the raw data of an object in dynamic heap memory.

     [MethodImpl(MethodImplOptions.AggressiveInlining)]
     public static Pointer<byte> AddressOfHeap<T>(ref T t) where T : class
     {
     	TypedReference tr = __makeref(t);
    
     	// NOTE:
     	// Strings have their data offset by RuntimeHelpers.OffsetToStringData
     	// Arrays have their data offset by IntPtr.Size * 2 bytes (may be different for 32 bit)
     	return **(IntPtr**) (&tr);
     }
  • Around April 2018, I started writing my C triangle solver for the TI-84: TITrig. This project taught me a lot about assembly, specifically Zilog Z80 assembly, and native programming.

  • I also made a Schoology quiz taker in November 2017 using Selenium and C#: QuizletSharp. I'm in the process of rewriting this library because my skills have increased significantly since I first wrote it. Ironically, the program is actually very fast. This is a code snippet that resolves the current question and attempts to find the closest answer.

     public void LongMode()
     {
     	Stopwatch localSw = Stopwatch.StartNew();
    
     	Console.Clear();
     	_numOfQuestions = GetQuestionAmount();
     	Console.WriteLine("Total questions: {0}", _numOfQuestions);
    
     	for (int i = 0; i < _numOfQuestions; i++) {
     		_currentQuestion = i;
     		string prompt = GetPromptAtQuestionNum(i);
    
     		List<IWebElement> radios = GetRadiosAtQuestionNum(i);
     		LogQuestion("Indexed {0} radios in this scope", radios.Count);
    
    
     		string def;
    
     		if (Manual.ContainsKey(prompt)) {
     			def = Manual[prompt];
     			goto skipPool;
     		}
    
     		try {
     			def = _qp.Pool[prompt];
     		}
     		catch (KeyNotFoundException) {
     			// Run advanced search if key is not found
    
     			LogQuestion("Key not found!");
     			def = FindClosestDelta(prompt);
     		}
     ...
  • My first significant project was my Cydia repository for jailbroken iOS devices which I made in 8th grade. It has served as a template for many GitHub-based Debian APT package management repositories.

  • For my class-based accomplishments, I learned a lot about Processing (which I honestly dislike) and drawing methods. It has helped me visually channel my creativity. You can also use the arrows below to see some of the projects I made in class


Difficulty

Writing code in Processing that actually worked on the web was a huge pain, because Processing JS converts Processing Java code into Processing JS code on the web which meant some Java code wouldn't work properly. For example, enums don't work on the web.

In nearly every Processing project I did, I ended up writing some code that didn't work on the web. To resolve this, I would have to rewrite a major part of the program just to get it to work on the web. That's one major reason I dislike Processing.


My favorite languages

  1. C#
  2. C++
  3. Java
  4. C

Links

These are links to some of my projects I've been working on in and out of ACS. Click the arrows for a link to the repository, live website, and a description.

TI-84 Triangle solver written in C

Chemotaxis

  • Chemotaxis

  • Chemotaxis URL

  • I thought this was a pretty cool project to start the year. I mostly learned about drawing more advanced things in Processing.

Dice

  • Dice

  • Dice URL

  • The biggest thing I learned while making this project was efficiency. I came up with a cool method for drawing die by using enums, but unfortunately a lot of the code I wrote didn't work online.

Lightning

  • Lightning (+JS)

  • Lightning URL

  • I thought it was cool being able to combine both Processing and JS in the same web page. It taught me a lot about how modern websites fuse languages together to create a complex and interactive web page.

Web page

  • Web page

  • Web page URL

  • This was the first legitimate website I created using pure HTML and JS. I'd created websites before, but nowhere near as complex as this one. I also knew what I was doing this time around.

College presentation

  • Presentation

  • It was nice to visit another college campus. Though I decided to go to the U of MN instead, it was interesting talking to the staff about their computer science programs.

Starfield

  • Starfield

  • Starfield URL

  • I liked learning how to draw even more advanced things in Processing. I came up with a cool method for moving stars:

void move(double angleDelta) {
    m_color = color((int)(Math.cos(m_angle) * 255),(int)(Math.sin(m_angle) * 255),(int)(Math.tan(m_angle) * 255));
    m_x = Math.cos(m_angle) * m_scalar + (m_x);
    m_y = Math.sin(m_angle) * m_scalar + (m_y);
    m_angle += angleDelta;
  }
  • Basically, this code does some epic trigonometric and sinusoidal calculations which move the star. This code actually wasn't hard at all (because SOH-CAH-TOA is epic), but relatively speaking it was hard to visualize the calculations.

Holiday card 2018

  • Holiday card

  • Holiday card URL

  • This Holiday card was more advanced than the one I did in 2017. This was particularly epic because I included easter eggs. The code I wrote was also a lot better than the 2017 Holiday card.

StringParser (Flesch readability)

  • StringParser

  • StringParser URL

  • This assignment was extremely frustrating because my code worked on desktop but not online (as does every single Processing project). Specifically, my syllable counter was originally done with Regex but Processing is stupid and Regex doesn't work online. I ended up having to write my syllable counter in a less efficient manner. I had to write the syllable counter a total of 3 times before it actually worked.

Innovation seminars

  • Presentation

  • Project Soli is a project by Google to create interactive interfaces using radio frequencies. I think this would be very cool to be able to program. It would be epic if you could program it to do what you want.

Markov Chain

  • MarkovC

  • I thought this was interesting but it confused me a bit before I could fully understand it. I think it's a really cool aspect of computer science and it taught me a lot about how thinks like search engines work.

Data structures

  • Some code

  • I learned a lot about data structures this year. I already knew about Sets, Maps, and LinkedLists, but I learned a lot about Queues and Stacks. I had never used Queues and Stacks before because I never needed to use a structure like them. I think my knowledge will help me write more efficient and effective code because I will know which structure I need to use and how to apply its use.

DataAnalysis

  • DataAnalysis

  • This project analyzed a set of data. Specifically, it analyzed my Instagram page's data such as comments, likes, posts, views, etc. over time. It created a bar graph of and a line graph based on the date setting. You could analyze the day, week, month, year, or absolute time.

Trees

  • Trees

  • I thought learning about Trees was really interesting because I'd never used a structure like a Tree before. I also think it's really interesting how they work because I learned about how certain websites and apps use Trees to make a functioning interactive tool like a quiz.

InteractiveEcon

  • InteractiveEcon

  • WIP

  • This was my final project for ACS. The program creates interactive economic graphs such as simple supply and demand. It shows the effects of shifts of curves.

About

̶̷̧̜̯̰̰̦͔̻̻̩̎̊ͬ̋̈͑ͩ̓͐g̒̿͂̾̅̀̑͗̈́̚̕҉̤̙̭͙̼͈̺̫̻̲̤̞̳̖͡͡ͅg̷̖̣̖̜̑̉̽̐̂͂̃ͬ̆̀͗̉ͮͅg̡̨͊͐ͩ̎̃ͣ̾̄̇̀̇̂̃͂̍̊͋̚͠͏̟̣̻͎͢g̡̼̝̱̬͙͓̝̞͇͓̊́͂͌̊̍ͨ̑ͭ̅̕g̼̼̯̣̲̙̗̦͈̫͖̪̭͖͇͔̦̱̠̅̓͑͂ͬ̂̏͒͆̋ͦ͑̾͌͒̓̅̚͠g̨̛͔̖̙̜̫̙͈͚̮̤̽ͬͦ̽̄̅̅͟͝͞g̍͊̅͌͂͏̨̢̮̠̠̞̲̙g̨ͨ̅̐ͧͪ͏͇͍̖͎g̷̊̆ͦ̄͋͝҉̫͓̘͓͉̪̗̰̻̭̮̜̩̼̱͕͖̹̪ġ̴̢̹̰͓̝̠̯͙̗̲͈̯̰̦͓̜̤̳̞ͭ̓͂̽ͦͣ̈͌̒̆̊́g̢̨͉͍̘̲̦̰̭̤̗̮̦̬̝̘͉͒ͯ̉̿̔̂͟͜͡g̢̢̼̥͚͍̰̘̟̰̮̯̠ͨ͑͗̃̈́̃́ͭ̽̈ͫͅģ̉͛̊̈́̋͑̃͐̔ͥ̀̐͛̃ͬͨ͏͓̀…

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published