mononoke.io

This website is was inspired by the creativity of Hayao Miyazaki for the film Princess Mononoke and from the design priciples of Material Design. The site is open source and is available on GitHub; if you'd like to contribute to the project, cosider forking the repository. This site contains audio content created by The Puget Sound Podcast, which is a student recorded podcast available on the iTunes store, and on SoundCloud.


Card Title

Github Open Source contributions Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.




Puget Sound Podcast

Episode 5 : The Trail, May 1st | 2017

Hello Everyone,
Welcome to the Puget Sound Podcast! For this episode, we've spoken with Casey O'Brien, Editor-in-Chief of the Puget Sound Trail, about her experience with the Trail as well as where the organization is headed next year. Casey fills us in with great detail about the inner workings of the organization, and the process of putting all of the moving parts together to produce a student-run newspaper on a weekly basis.

Make sure to subscribe to the podcast on iTunes and SoundCloud so you don't miss future episodes and leave us a rating and review in iTunes as it helps us out a lot to know what we are doing well and what we could be doing better.

Thanks everyone and...
We'll see you next time!

Puget Sound Podcast

Episode 3 : Eventi, April 1st | 2017

Hello Everyone,
Welcome to the Puget Sound Podcast! For this episode, we are speaking with two student application developers, Chili Johnson and Henry Woody from our own Mathematics & Computer Science department at the University of Puget Sound. Together with another student developer from our Math & CS department, Banji Oywole, the team has successfully developed and launched Eventi, an application that is available on the Google Play Store and on Apple’s App Store. Eventi is “designed from the ground up by students that set out to move us away from physical posters and toward a more sustainable future for the University of Puget Sound.”— Eventi helps to inform students about events on campus relating to lectures, clubs, entertainment, study sessions, athletic events, exhibits, and more. Sign up & learn more about Eventi at : eventi.pugetsound.edu

Make sure to subscribe to the podcast on iTunes and SoundCloud so you don't miss future episodes and leave us a rating and review in iTunes as it helps us out a lot to know what we are doing well and what we could be doing better.

Thanks everyone and...
We'll see you next time!

Python Programming

Command Prompt Customization, December 28 | 2016

So you've been programming in Python, and you're feeling pretty badass... HOWEVER, you're tired of the stock interactive prompt symbol that looks like '>>>'. Well this guide is for you. If you're using a unix based operating system (mac or linux) and you're also using Python 3, then you can change your interactive prompt to be an emoji of choice. Note : if you're a died in the wool Python 2 user, you may still change your interactive prompt default symbol, but you'll have to find another guide to make it an emoji.
In my case, I made my interactive prompt symbol the python emoji.

So, first you should install Python3. You can find a download link here : Python Downloads.

Now that you have Python 3 installed, lets transiently change the interactive prompt symbol to get a handle on the future modification that we'll be making. Start by entering the Python 3 interactive shell, issue $ python3 into your terminal

Issuing $ python3 into your terminal will translocate you into the Python interactive prompt. The default interactive prompt symbol is '>>>'. In other words, it's in need of a makeover. Let's use the Python import system to access the system specific parameters and functons available in the 'sys' module by issuing '$ import sys' into our interactive prompt.

By issuing '$ help(sys)' after importing the sys module, you may view the specifications of the sys module, including the functions that are made available through the importation of the module.

After issuing '$ help(sys)', read through the content that is returned by the Python interactive prompt. Look for : ps1 = '>>>'

The variables ps1 and ps2 indicate "strings specifying the primary and secondary prompt symbol of the interpreter. These are only defined if the interpreter is in interactive mode." Now, press 'q' to exit the system specific specifications for the sys module and to return to the ineractive prompt. Once you're navigated back to the Python interactive prompt, let's change the value of the ps1 variable by issuing : sys.ps1 = '~~~ '

Did you catch that? Issuing sys.ps1 = '~~~ ' has changed the interactive prompt symbol! Now, try issuing the same command but change the value inside of the quotes to whatever you desire! However, we still have a problem... once we exit ther Python interactive prompt and re-enter, our modification the the sys.ps1 variable does not persist. In order to make the modification persist we must complete a two part process: first, we'll create a script to be executed within the Pyton interactive prompt upon startup, next we'll edit our .bash_profile (or possibly .profile, .bashrc) in order to execute the startup python script. Take a look at this code, the contents make up the Python startup script :


# import the sys module
import sys

# assign the sys.ps1 variable to the desired prompt symbol
sys.ps1 = '~~~ '

# uncomment the following line in order to assign the sys.ps1 variable to the python emoji
# sys.ps1 = ' ' + u'\U0001f40d'.ljust(2) + ' $ '
          

Now that you know the essence of the Python interactive prompt startup script, let's save the contents out to a file. I decided to call mine .PYTHONSTARTUP (notice the '.' which is used as a prefix for the file and makes the file "hidden"). I saved this file out to my home directory : /Users/Alex/

Last we'll make an edit to our .bash_profile which is located in the home directory. Because the file is a "hidden", in order to see it in our terminal issue $ ls -a, which reads "list all". Note, if you don't have a .bash_profile, .profile, or .bashrc file located in your home directory you can make one by issuing $ touch .bash_profile. In order to edit the .bash_profile, use your favorite command line text editor, I'll be using nano. Once inside of the file, append the following code to the end of the file :


export PYTHONSTARTUP=~/.PYTHONSTARTUP
          

Save the file and return to the terminal. Now, let's execute our script so that it takes effect! Issue : . ~/.bash_profile in order to execute the file.

There's only one more step, issue $ python3 to launch the Python interactive prompt and behold the beautiful and persistent change to the prompt symbol!

Here are some resources to help you along your way : nano text editor, emoji character resource, and .profile!

Puget Sound Podcast

Episode 2 : Women in Economics, December 4 | 2016

Hello Everyone,
For this episode, we’ve spoken with Professor Fortmann and Natanya Glatt from the economics department on the topic of the underrepresentation of women in the department. This episode depicts the economics department in its current state in terms of gender distribution. Throughout the interview, we discuss the reasons why the disparity between women and men might exist in the department, and potential solutions to the issue.

Make sure to subscribe to the podcast on iTunes and SoundCloud so you don't miss future episodes and leave us a rating and review in iTunes as it helps us out a lot to know what we are doing well and what we could be doing better.

Thanks everyone and...
We'll see you next time!






Javascript Prototypes

A Prototypical Inheritance Model, November 20 | 2016

So, you've been coding in javascript, eh? Maybe you've heard the cool cats talking about prototypes in class. What is a prototype anyway?Prototypes are basically javascript's inheritance model.

"All objects in JavaScript are descended from Object; all objects inherit methods and properties from their prototype."

More about prototypes at : PROTOTOTOTYPE


The following are models of prototypic relationships:

The mammal node can be thought of as a prototype to walrus, meerkat, and platypus.

Similarly, the shape node can be regarded as the prototype of sphere, icosahedron, and triangle.



Next is an example of a prototypical relationship in javascript.

This relationship is primarily made up of :
  • code talk function
    
      function talk(){
        console.log(this.noise)
      }
                        
  • code mammal object
    
      const mammal = {
       talk : talk
      }
                         
  • code cat object
    
      const cat = {
       noise : 'meow'
      }
                         

  function talk(){
    console.log(this.noise)
  }

  const mammal = {
    talk : talk
  }

  const cat = {
    noise : 'meow'
  }

  Object.setPrototypeOf(cat, mammal)

  cat.talk();
              
Pay specific attention to the Object.setPrototypeOf(CHILD, PROTOTYPE) method call...

  ...
  Object.setPrototypeOf(cat, mammal)
  ...
          		

The Object.setPrototypeOf(cat, mammal) is setting the cat object to have a prototype of mammal.

Therefore, the cat object inherits the functions and properties of the mammal prototype, in this case : cat inherits a talk property which has the talk() function as it's corresponding value :


  function talk(){
    console.log(this.noise)
  }

  const mammal = {
  	talk : talk
  }

  const cat = {
  	noise : 'meow'
  }

  Object.setPrototypeOf(cat, mammal)
              

Now that the cat object has mammal as its prototype, the talk() function can be called on the cat object :


  ...
  cat.talk();
              

Save the code out to a file, I called mine pt.js

With the javascript runtime environment node.js installed, issue $ node fineName.js while navigated to the directory which contains the javscript file

Now, finally, the cat can meow. It's all it really wanted all along...

But what exactly happened when the call to the talk() function occured on the cat object?

Well...

  • code javascript interpreter looks for a talk() function "inside" the cat object
    
      // where could the talk funcion be?
      const cat = {
      	noise : 'meow'
      }
                           
  • code interpreter finds no talk() function in cat object
    
      const cat = {
       noise : 'meow'
      }
      // no talk() to be found
                           
  • code interpreter then checks prototypes for an inherited talk() function
    
      const mammal = {
       talk : talk
      }
    
      const cat = {
       noise : 'meow'
      }
    
      // hmm, i see that cat has mammal as prototype
      Object.setPrototypeOf(cat, mammal)
                           
  • code interpreter finds talk() function belonging to mammal prototype of cat
    
      const mammal = {
       // this must be the talk function we're looking for
       talk : talk
      }
                           
  • code talk() function is excuted on cat object, this makes a log to the console with the this.noise property belonging to cat object
    
      ...
      cat.talk();
                           

The full javascript code for this example can be found below, with a platypus object added :


  function talk(){
  console.log(this.noise)
  }

  const mammal = {
  talk : talk
  }

  const cat = {
  noise : 'meow'
  }

  const platypus = {
  noise : 'quack'
  }

  Object.setPrototypeOf(cat, mammal)
  Object.setPrototypeOf(platypus, mammal)
  cat.talk();
  platypus.talk();
              

Puget Sound Podcast

Episode 1 : Peer Allies, October 30 | 2016

Greetings and Salutations,
I'm SO happy to announce the first episode of the Puget Sound Podcast.
We, as a team, were fortunate to get the chance to talk with two members of Peer Allies. We hope that with this conversations, we can help to foster the larger discussion throughout the campus of sexual violence and assault and that through the methods discussed in the episode, we can make strides to improve the campus awareness, reporting, and attitude about sexual violence and assault.

Make sure to subscribe to the podcast on iTunes and SoundCloud so you don't miss future episodes and leave us a rating and review in iTunes as it helps us out a lot to know what we are doing well and what we could be doing better.

Thanks everyone and...
We'll see you next time!



Association for Computing Machinery

Carriage Return, October 23 | 2016

Originally, the term "carriage return" referred to a mechanism or lever on a typewriter. It was used after typing a line of text and caused the assembly holding the paper (the carriage) to return to the right so that the machine was ready to type again on the left-hand side of the paper.

The above image by Takashi Hososhima from Tokyo, Japan (A typewriter) [CC BY-SA 2.0 (http://creativecommons.org/licenses/by-sa/2.0)], via Wikimedia Commons
github.com/alexanderclaybeard/carriage-return-java

  class CarriageReturn{
    String[] circCharArr = {"|", "/", "—", "\\", "|", "/", "—", "\\"};
    public static void main(String args[]) throws InterruptedException {

      CarriageReturn cr = new CarriageReturn();

      cr.slashLoader(1);
    }

    public void slashLoader(int numLines) throws InterruptedException{
      if (numLines < 1 || numLines > 3)
      {
        numLines = 3;
      }


      System.out.println("array length : " + circCharArr.length);
      while(true){
        for (int i = 0; i < circCharArr.length; i++) {
          if (i == circCharArr.length)
          {
            // System.out.print("\r" + circCharArr[i] + "\t\r" + circCharArr[i-1] + "\t\r" + circCharArr[i-2]);
            i = 0;
            // continue;
          }
          //Pause for 1 second
          Thread.sleep(100);

          switch(numLines){
            case 1:
            System.out.print(
            "\r" +
            circCharArr[i] +
            "\t" +
            circCharArr[(i+1)%circCharArr.length] +
            "\t" +
            circCharArr[(i+2)%circCharArr.length] +
            "\t" +
            circCharArr[(i+3)%circCharArr.length] +
            "\t" +
            circCharArr[(i+4)%circCharArr.length] +
            "\t" +
            circCharArr[(i+5)%circCharArr.length] +
            "\t" +
            circCharArr[(i+6)%circCharArr.length] +
            "\t" +
            circCharArr[(i+7)%circCharArr.length] +
            "\t" +
            circCharArr[(i+8)%circCharArr.length] +
            "\t" +
            circCharArr[(i+9)%circCharArr.length] +
            "\t" +
            circCharArr[(i+10)%circCharArr.length] +
            "\t" +
            circCharArr[(i+11)%circCharArr.length] +
            "\t" +
            circCharArr[(i+12)%circCharArr.length] +
            "\t" +
            circCharArr[(i+13)%circCharArr.length] +
            "\t" +
            circCharArr[(i+14)%circCharArr.length] +
            "\t" +
            circCharArr[(i+15)%circCharArr.length] +
            "\t" +
            circCharArr[(i+16)%circCharArr.length]
            );
            // System.out.println();
            break;
            case 2:
            System.out.print(
            "\r" +
            circCharArr[i] +
            "\t" +
            circCharArr[(i+1)%circCharArr.length] +
            "\t" +
            circCharArr[(i+2)%circCharArr.length] +
            "\t" +
            circCharArr[(i+3)%circCharArr.length] +
            "\t" +
            circCharArr[(i+4)%circCharArr.length] +
            "\t" +
            circCharArr[(i+5)%circCharArr.length] +
            "\t" +
            circCharArr[(i+6)%circCharArr.length] +
            "\t" +
            circCharArr[(i+7)%circCharArr.length] +
            "\t" +
            circCharArr[(i+8)%circCharArr.length]
            );
            System.out.println();
            System.out.print(
            "\r" +
            circCharArr[i] +
            "\t" +
            circCharArr[(i+1)%circCharArr.length] +
            "\t" +
            circCharArr[(i+2)%circCharArr.length] +
            "\t" +
            circCharArr[(i+3)%circCharArr.length] +
            "\t" +
            circCharArr[(i+4)%circCharArr.length] +
            "\t" +
            circCharArr[(i+5)%circCharArr.length] +
            "\t" +
            circCharArr[(i+6)%circCharArr.length] +
            "\t" +
            circCharArr[(i+7)%circCharArr.length] +
            "\t" +
            circCharArr[(i+8)%circCharArr.length]
            );
            break;
            case 3:
            System.out.print(
            "\r" +
            circCharArr[i] +
            "\t" +
            circCharArr[(i+1)%circCharArr.length] +
            "\t" +
            circCharArr[(i+2)%circCharArr.length] +
            "\t" +
            circCharArr[(i+3)%circCharArr.length] +
            "\t" +
            circCharArr[(i+4)%circCharArr.length] +
            "\t" +
            circCharArr[(i+5)%circCharArr.length] +
            "\t" +
            circCharArr[(i+6)%circCharArr.length] +
            "\t" +
            circCharArr[(i+7)%circCharArr.length] +
            "\t" +
            circCharArr[(i+8)%circCharArr.length]
            );
            System.out.println();
            System.out.print(
            "\r" +
            circCharArr[i] +
            "\t" +
            circCharArr[(i+1)%circCharArr.length] +
            "\t" +
            circCharArr[(i+2)%circCharArr.length] +
            "\t" +
            circCharArr[(i+3)%circCharArr.length] +
            "\t" +
            circCharArr[(i+4)%circCharArr.length] +
            "\t" +
            circCharArr[(i+5)%circCharArr.length] +
            "\t" +
            circCharArr[(i+6)%circCharArr.length] +
            "\t" +
            circCharArr[(i+7)%circCharArr.length] +
            "\t" +
            circCharArr[(i+8)%circCharArr.length]
            );
            System.out.println();
            System.out.print(
            "\r" +
            circCharArr[i] +
            "\t" +
            circCharArr[(i+1)%circCharArr.length] +
            "\t" +
            circCharArr[(i+2)%circCharArr.length] +
            "\t" +
            circCharArr[(i+3)%circCharArr.length] +
            "\t" +
            circCharArr[(i+4)%circCharArr.length] +
            "\t" +
            circCharArr[(i+5)%circCharArr.length] +
            "\t" +
            circCharArr[(i+6)%circCharArr.length] +
            "\t" +
            circCharArr[(i+7)%circCharArr.length] +
            "\t" +
            circCharArr[(i+8)%circCharArr.length]
            );
            break;
            default:
            System.out.print("default, something went wrong");
            System.exit(0);
            break;
          }
        }
      }
    }
  }
          
The carriage return in java is deonted with \r

On a journey to find the cure for a Tatarigami's curse, Ashitaka finds himself in the middle of a war between the forest gods and Tatara, a mining colony. In this quest he also meets San, the Mononoke Hime.

On a journey to find the cure for a Tatarigami's curse, Ashitaka finds himself in the middle of a war between the forest gods and Tatara, a mining colony. In this quest he also meets San, the Mononoke Hime.

On a journey to find the cure for a Tatarigami's curse, Ashitaka finds himself in the middle of a war between the forest gods and Tatara, a mining colony. In this quest he also meets San, the Mononoke Hime.

On a journey to find the cure for a Tatarigami's curse, Ashitaka finds himself in the middle of a war between the forest gods and Tatara, a mining colony. In this quest he also meets San, the Mononoke Hime.