Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
software [2015/03/15 07:16]
Maciek Chudek
software [2019/07/22 23:43]
Maciek Chudek
Line 1: Line 1:
 == Click headings with plus signs (+) for more details. == == Click headings with plus signs (+) for more details. ==
  
-Sometimes in the course of my work  make small bits of software ​that do specific tasksSome of these are useful ​to others so share them here. Unless otherwise specified they're available under the [[http://​www.gnu.org/​licenses/​gpl.html|GPLv3 license]].+The following are open source projects ​that I have posted on githubMost are either directly related ​to my published research papers or small tools I've developed to help with my own workflow.
  
 +I've sorted them below first by category and then by programming language.
  
-NOTE: This page is out of date. I'll update it with new software soon. 
  
 +===== By Category =====
  
  
 +==== Scientific tools ====
  
-====== Professional and Research Tools ====== 
  
 +=== regression_table_generator ===
  
 +[  [[https://​github.com/​MaciekChudek/​regression_table_generator|git]] ​ ] //A set of R fucntions that automates one of the most labourious parts of the academic publishing process: painstakingly copy-pasting your analytic results into publication quality regression tables. You mearly provide a list of fitted regression model objects and R will automatically generate the latex code for producing perfectly laid out regression tables, ready for publicaiton. It will even compile the images for you if you have latex installed. ​ (Language: r; Platform: Portable)//
  
-=== Publication Quality Regression Table Generator for R (using Latex) === 
  
  
 +=== word_proximity_counter ===
  
-One of the most needlessly labourious parts of publishing an academic paper is, cell be cell, copying data from your statistical analysis package (e.g., R) into your typsetting software (e.g., Word, Latex)I've written ​script that takes a list of regressions ​in R (i.e., the outputs from lm() or glm(), wrapped in a list() ) and automatically generates the code to typeset them as publicaiton quality regresion tables in Latex (e.g., propper vertical alignment of significant figures, etc.), then (assumging you have a latex compiler installed) compiles them, and shrinks each pdf page to just the right size to fit around the table. An example of the output is below. I'm working (in the odd moments I have spare time) on documenting,​ encapsulating and turning this into an R package, to be uploaded to CRAN. In the meantime, email me if you'd like to get your hands on the raw code.+[  [[https://​github.com/​MaciekChudek/​word_proximity_counter|git]] ​ ] //A tool for counting how often two words appear within ​specified proximity ​of each other in textsUsed for research on historical corpuses (Language: python; Platform: Portable)//
  
  
  
 +=== online_textual_coding ===
  
 +[  [[https://​github.com/​MaciekChudek/​online_textual_coding|git]] ​ ] //A web based tool for multiple "​coders"​ to log in a make binary decisions about passage of text.  (Language: php; Platform: Web)//
  
----- 
  
-//Example regression table (click it for full size image)//: 
  
 +=== handy_r_functions ===
  
 +[  [[https://​github.com/​MaciekChudek/​handy_r_functions|git]] ​ ] //A collection of the handy R functions. ​ (Language: r; Platform: Portable)//
  
-{{:​table_example.png?600|}}+These are functions for data analysis, visualisation and export (especially to latex), that I've written and refined over my career as a scientist.
  
  
 +==== Simulations ====
  
----- 
  
 +=== noisy_world_reciprocity ===
  
 +[  [[https://​github.com/​MaciekChudek/​noisy_world_reciprocity|git]] ​ ] //Optimised simulation of reciprocity dynamics when information is poor  (Language: c; Platform: Linux)//
  
-=== Faux php-based experimental games platform ===  
  
  
 +=== coalescent_migration_sim ===
  
-I've recently developed ​basic, but versatile, web-administrated ​(i.e. no programming experience required, including complete designing studiesplatform for making people believe they'​re playing experimental,​ economic games over the internet with other players (they'​re really playing against with a computer) and recording data on their decisions, including timestamps on how long each decision takes. Contact me if you're interested.+[  [[https://​github.com/​MaciekChudek/​coalescent_migration_sim|git]] ​ ] //Optimised simulation of relatedness in population with non-trivial migration  ​(Language: c; Platform: Linux)//
  
  
  
-=== Evolutionary Dynamics Visulisations in Mathematica ​=== +=== beta_ghosts_sim ​===
  
 +[  [[https://​github.com/​MaciekChudek/​beta_ghosts_sim|git]] ​ ] //Optimised simulation of the evolutionary dynamics of genetic relatedness given regular population fission ​ (Language: c; Platform: Linux)//
  
  
-I've written various elaborate functions for dynamically visualising selection gradients in Mathematica. These have gotten quite fancy over time. Now you can sse null-clines and equilbria moving through vector fields as you adjust the parameters and project 3-strategy models onto barycentric coordinate systems. If you're a Mathematica user who's interested in the same questions, I'd be happy to share them with you. Just let me know. 
  
  
 +==== Pedagogical tools ====
  
  
 +=== classroom_strategic_games ===
  
-=== Random-Assignment Redirect Generator ===+[  [[https://​github.com/​MaciekChudek/​classroom_strategic_games|git]] ​ ] //A teaching aid which lets students interactively play economic games (e.g., dictator / trust / ultimatum) from their web-connected devices in the class room. Takes care of random pairing, point tracking, etc.  (Language: javascript; Platform: Web)//
  
  
  
-[[http://​psyclab1.psych.ubc.ca/​~matthew/​randomiser.php|Random-Assignment Redirect Generator]] - Psychologists often need to randomly assign individuals to web-surveys. This little page helps out my non-programmer colleagues by automatically generating php-redirect script for them.+=== probability_teaching_tools ===
  
 +[  [[https://​github.com/​MaciekChudek/​probability_teaching_tools|git]] ​ ] //A teaching aid which demonstrates the central limit theorum by letting students nominate distributions to sample from, and visualising the distribution of their sum.  (Language: r; Platform: Portable)//
  
  
  
  
-====== Pedagogical Tools ======+==== Productivity tools ====
  
  
-=== Online Classroom Strategic Games Platform ​===+=== csv_templater ​===
  
 +[  [[https://​github.com/​MaciekChudek/​csv_templater|git]] ​ ] //A CSV-templating system. ​ (Language: perl; Platform: Linux)//
  
 +A script that maps data from spreadsheets into arbitrary templates. For instance, I use it to automatically generate this web page.
  
-Using reactive web technologies (specifically,​ [[https://​www.meteor.com/​|meteor]]) I put together a little web platform for playing strategic games (e.g., dictator, trust, public goods, etc) in real time with your class. You use a web interface to design the game (e.g., start with an endowment, get paired with another random student, give away any amount to them, increase it by a multiplier, punish the person who just gave (or didn'​t) to you, etc.). Then you launch the game and give students a unique, auto-generated web link. When they visit it in their browser, they receive a random ID number (and a cookie, so they keep the same ID even if they restart their browser, computer, etc.). ​+=== website_checker ===
  
-As you step through the stages of the game the students'​ screens automatically change in real timeThe platform automatically pairs students with random partners, tracks their '​points',​ shows them widgets for selecting how much to give, etc. Throughout ​you see in real time how many students have made each decision, so you know when to move onAt the end you see a full description of what everyone ​(identified by random IDdid at each stage and their final score, so you can actually pay them.+[  [[https://​github.com/​MaciekChudek/​web_checker|git]] ​ ] //A script ​to email you when a website changes (Language: bash; Platform: Linux)//
  
-I've got live demo up on the web. I've called it the [[Classroom Strategic Games WebApp]] If you want to develop this furtherI'll throw the source up on git+Simple bash script for sending yourself an email when website changes (schedule with cronetc).
  
 +=== online_todo_list ===
  
-=== Statistical Power Simulator ===+[  [[https://​github.com/​MaciekChudek/​online_todo_list|git]] ​ ] //A simple, dynamic todo list web page  (Language: php; Platform: Web)//
  
  
-Many students and even established scholars miss the importance of statistical power and meta-analysis,​ instead treating significance values as simple clear indicators of whether an effect exists. Under-powered studies will fail to detect real effects and over-powered studies will succeed in detecting meaninglessly small effects. I have a few toy programs that let you specify the average sample size of a study and the real size of the underlying effect, and then shows you what happens as scholars do more and more studies and either do or don't meta-analyse them. If you'd like a copy, let me know. In the meantime I'll work on developing a more accessible web-version. 
  
 +=== metric_imperial_chart ===
  
 +[  [[https://​github.com/​MaciekChudek/​metric_imperial_chart|git]] ​ ] //A chart with metric<​->​imperial conversions,​ which prints with to-scale visual aids  (Language: LaTeX; Platform: Portable)//
  
 +A one page chart with mertric<​->​imperial conversions which, if printed on letter paper, includes to-scale relative distance visualisations.
  
 +=== windows_timelogger ===
  
 +[  [[https://​github.com/​MaciekChudek/​windows_timelogger|git]] ​ ] //ery simple: you run it, it shows you a text box, you type something and it drops it in a text file with a time stamp. Assign it a hot key, hit that key, type what you're doing - presto, you have a complete log of your activities. ​  ​(Language:​ c#; Platform: Windows)//
  
-====== Personal Tools ====== 
  
  
 +=== scantron_multi_answer ===
  
 +[  [[https://​github.com/​MaciekChudek/​scantron_multi_answer|git]] ​ ] //A tool that allows grading of non-standard "​scantron"​ exam data where a single question can have multiple answers correct answers. ​ (Language: c#; Platform: Windows)//
  
 +You provide the "​scantron"​ data output and an answer key, and the grades per-student are automatically generated. Here I assume that if a question has n correct answers, each correct answer marked gives 1/n points and each incorrect answer marked gives -1/n, with 0 being the minimum score for a given question.
  
  
-=== Making Mendeley play nicely with Bibtex ​===+==== Games and toys ====
  
  
 +=== geo_adventure ===
  
 +[  [[https://​github.com/​MaciekChudek/​geo_adventure|git]] ​ ] //An Android based platform for making games where clues are '​unlocked'​ when a user gets within a close enough proximity of a GPS coordinate. Great for scavenger hunts and interactive stories. ​ (Language: java; Platform: Android)//
  
  
- ​[[http://​www.mendeley.com/​|Mendeley'​s]] ​ automatic bibtek synchronisation feature makes citations much easier for those of us who publish in Latex. Unfortunately despite people complaining for years, Mendeley still restrict the '​Year'​ field in citations to a number. For those of us who want to put 'In Press' or '​Forthcoming'​ or such in that field, it is a real nightmare. I couldn'​t find any easy way of solving this only, so here's one. This will work as long as you run linux and have [[http://​en.wikipedia.org/​wiki/​Sed|sed]] installed (which is standard in most distros). First, make sure you're compiling with the [[http://​scrolls.mafgani.net/​2011/​03/​latex-shell-escape/​|--shell-escape flag]]. Next, in Mendeley put a special non-date code number in the year field of any publications you want to label. I use: 8888='​in press',​ and 9999='​forthcoming'​. Finally, put this in your document before the \bibliography command (tweak to your own needs): 
  
 +=== geo_adventure_maker ===
  
 +[  [[https://​github.com/​MaciekChudek/​geo_adventure_maker|git]] ​ ] //An online system for making '​GeoAdventures'​ my laying points down on a google map, adding story text to them and connecting them with basic logic AND/​OR/​XOR/​NOT logic. ​ (Language: javascript; Platform: Web)//
  
  
  
 +=== handwritting_simulator ===
  
 +[  [[https://​github.com/​MaciekChudek/​cursive_canvas/​blob/​master/​README.md|git]] ​ ] //A web page which 'hand writes'​ in cursive script whatever you type on the screen. ​ (Language: javascript; Platform: Web)//
  
-<​code>​ 
  
  
 +=== DMLITE_remapper ===
  
-%Maciek'​s bibliography fix+[  [[https://​github.com/​MaciekChudek/​DMLITE_remapper|git]] ​ ] //A midi module that fixes he buggy DMLITE drum module high-hat midi signal. ​ (Language: c; Platform: Linux)//
  
-\immediate\write18{ cat  \jobname.bbl | sed -e '​s/​(9999)/​(forthcoming)/'​ -e '​s/​(8888)/​(in press)/'​ > \jobname.bbl.new && mv \jobname.bbl.new \jobname.bbl ​ } 
  
  
  
-</​code>​ 
  
  
  
  
 +===== By Language =====
  
  
 +==== r ====
  
  
 +=== regression_table_generator ===
  
-=== Simple Online To-Do List ===+[  [[https://​github.com/​MaciekChudek/​regression_table_generator|git]] ​ ] //A set of R fucntions that automates one of the most labourious parts of the academic publishing process: painstakingly copy-pasting your analytic results into publication quality regression tables. You mearly provide a list of fitted regression model objects and R will automatically generate the latex code for producing perfectly laid out regression tables, ready for publicaiton. It will even compile the images for you if you have latex installed. ​ (Category: Scientific tools; Platform: Portable)//
  
  
  
-{{:​todo.zip|Simple To-Do List}} - I just needed something simple, where I could easily create arbitrarily many lists and then add and remove items from them. Just unzip this on your web-server, tweak the parameters at the top of the index.php file, give write permission to the "​data"​ directory and it should just work. A [[http://​psyclab1.psych.ubc.ca/​~matthew/​todo2/​|demo version]] is here. +=== handy_r_functions ===
  
 +[  [[https://​github.com/​MaciekChudek/​handy_r_functions|git]] ​ ] //A collection of the handy R functions. ​ (Category: Scientific tools; Platform: Portable)//
  
 +These are functions for data analysis, visualisation and export (especially to latex), that I've written and refined over my career as a scientist.
  
-=== Timelogger (for Windows) ​===+=== probability_teaching_tools ​===
  
 +[  [[https://​github.com/​MaciekChudek/​probability_teaching_tools|git]] ​ ] //A teaching aid which demonstrates the central limit theorum by letting students nominate distributions to sample from, and visualising the distribution of their sum.  (Category: Pedagogical tools; Platform: Portable)//
  
  
-[[http://​www.psych.ubc.ca/​~matthew/​timelogger/​|Timelogger]] - Very simple: you run it, it shows you a text box, you type something and it drops it in a text file with a time stamp. Assign it a hot key, hit that key, type what you're doing - presto, you have a complete log of your activities. Good if you need to charge someone for hours worked, or if you want to stop yourself procrastinating by being accountable for your time. By default it write to a file called "​log.txt",​ but you can specify any other file by changing the first life of the file "​timeLogger.conf"​ in the same directory as the executable. Source code included. The "​_html"​ version puts a "<​br />" at the end of each line, to make it more readable on the web. 
  
  
 +==== python ====
  
-=== Virtual Loom === 
  
 +=== word_proximity_counter ===
  
 +[  [[https://​github.com/​MaciekChudek/​word_proximity_counter|git]] ​ ] //A tool for counting how often two words appear within a specified proximity of each other in texts. Used for research on historical corpuses. ​ (Category: Scientific tools; Platform: Portable)//
  
-[[http://​psyclab1.psych.ubc.ca/​~matthew/​loom/​index.php|Virtual Loom]] - Do you weave on a double heddle loom? Have you ever wanted to quickly visualise what your patterns will look like before you try them? Small audience, I know, but my ex-girlfriend was among them so the software now exists. It's raw - not very forgiving and expects you to already know the weaving technology and terminology - but it does the job.  
  
  
  
 +==== php ====
  
  
-=== Altered Dokuwiki Bibtex Plugin ​===+=== online_textual_coding ​===
  
 +[  [[https://​github.com/​MaciekChudek/​online_textual_coding|git]] ​ ] //A web based tool for multiple "​coders"​ to log in a make binary decisions about passage of text.  (Category: Scientific tools; Platform: Web)//
  
  
-{{:​bibtex.zip|Altered Dokuwiki Bibtex Plugin}} - I needed a way to collaborate on putting together extensive review papers. That requires a place where a bunch of coauthors can all quickly and easily add any citations they find, sort them into categories that can create and reorganised on the fly, be able to make notes about the citations, the structure, the paper we were going to write, and so on. My solution was [[http://​www.dokuwiki.org|Dokuwiki]],​ with this [[http://​stat.genopole.cnrs.fr/​dw/​~cambroise/​doku.php?​id=softwares:​dokuwikibibtexplugin|bibtex plugin]]. The wiki makes it easy to create arbitrary conceptual structures and categories (via networks of links, lists or headings/​subheadings),​ the plugin means we can copy-paste the raw [[http://​www.bibtex.org/​|bibtex]] (which you can export from most citation searches) into the page and it automatically gets formatted nicely, then later just copy-paste it back out for the paper. I tampered with the plugin slightly to make it the headings display more like an APA style and for it to show up notes on each paper (which you add as an extra bibtex field: "​notes"​) in a light grey box. Download [[http://​www.dokuwiki.org|Dokuwiki]],​ then grab my alterted plugin and unzip it in your /​lib/​plugins/​ folder. ​ To produce citations like this: 
  
 +=== online_todo_list ===
  
 +[  [[https://​github.com/​MaciekChudek/​online_todo_list|git]] ​ ] //A simple, dynamic todo list web page  (Category: Productivity tools; Platform: Web)//
  
  
  
  
 +==== c ====
  
-\\ 
  
 +=== noisy_world_reciprocity ===
  
 +[  [[https://​github.com/​MaciekChudek/​noisy_world_reciprocity|git]] ​ ] //Optimised simulation of reciprocity dynamics when information is poor  (Category: Simulations;​ Platform: Linux)//
  
  
  
 +=== coalescent_migration_sim ===
  
 +[  [[https://​github.com/​MaciekChudek/​coalescent_migration_sim|git]] ​ ] //Optimised simulation of relatedness in a population with non-trivial migration ​ (Category: Simulations;​ Platform: Linux)//
  
----- 
  
  
 +=== beta_ghosts_sim ===
  
 +[  [[https://​github.com/​MaciekChudek/​beta_ghosts_sim|git]] ​ ] //Optimised simulation of the evolutionary dynamics of genetic relatedness given regular population fission ​ (Category: Simulations;​ Platform: Linux)//
  
  
  
 +=== DMLITE_remapper ===
  
-<​bibtex> ​+[  [[https://​github.com/​MaciekChudek/​DMLITE_remapper|git]] ​ ] //A midi module that fixes he buggy DMLITE drum module high-hat midi signal. ​ (Category: Games and toys; Platform: Linux)//
  
  
  
-        ​ 
  
 +==== javascript ====
  
  
-@BOOK{BandR85,​+=== classroom_strategic_games ===
  
 +[  [[https://​github.com/​MaciekChudek/​classroom_strategic_games|git]] ​ ] //A teaching aid which lets students interactively play economic games (e.g., dictator / trust / ultimatum) from their web-connected devices in the class room. Takes care of random pairing, point tracking, etc.  (Category: Pedagogical tools; Platform: Web)//
  
  
-  title = {Culture and the Evolutionary Process}, 
  
 +=== geo_adventure_maker ===
  
 +[  [[https://​github.com/​MaciekChudek/​geo_adventure_maker|git]] ​ ] //An online system for making '​GeoAdventures'​ my laying points down on a google map, adding story text to them and connecting them with basic logic AND/​OR/​XOR/​NOT logic. ​ (Category: Games and toys; Platform: Web)//
  
-  publisher = {University Of Chicago Press}, 
  
  
 +=== handwritting_simulator ===
  
-  year = {1985},+[  [[https://​github.com/​MaciekChudek/​cursive_canvas/​blob/​master/​README.md|git]] ​ ] //A web page which 'hand writes'​ in cursive script whatever you type on the screen. ​ (Category: Games and toys; Platform: Web)//
  
  
  
-  author = {Boyd, R. and Richerson, P. J.}, 
  
 +==== perl ====
  
  
-   ​notes ​{This one will be critical but we'll need to be very careful about not misrepresenting the results},+=== csv_templater ===
  
 +[  [[https://​github.com/​MaciekChudek/​csv_templater|git]] ​ ] //A CSV-templating system. ​ (Category: Productivity tools; Platform: Linux)//
  
 +A script that maps data from spreadsheets into arbitrary templates. For instance, I use it to automatically generate this web page.
  
-} 
  
 +==== bash ====
  
  
 +=== website_checker ===
  
 +[  [[https://​github.com/​MaciekChudek/​web_checker|git]] ​ ] //A script to email you when a website changes. ​ (Category: Productivity tools; Platform: Linux)//
  
 +Simple bash script for sending yourself an email when a website changes (schedule with cron, etc).
  
  
-@BOOK{CSandF81,​+==== LaTeX ====
  
  
 +=== metric_imperial_chart ===
  
-  title = {Cultural Transmission and Evolution: A Quantative Approach},+[  [[https://​github.com/​MaciekChudek/​metric_imperial_chart|git]] ​ ] //chart with metric<​->​imperial conversionswhich prints with to-scale visual aids  (Category: Productivity tools; Platform: Portable)//
  
 +A one page chart with mertric<​->​imperial conversions which, if printed on letter paper, includes to-scale relative distance visualisations.
  
  
-  publisher ​{Princeton University Press},+==== c# ====
  
  
 +=== windows_timelogger ===
  
-  year = {1981},+[  [[https://​github.com/​MaciekChudek/​windows_timelogger|git]] ​ ] //ery simple: you run itit shows you a text box, you type something and it drops it in a text file with a time stamp. Assign it a hot key, hit that key, type what you're doing - presto, you have a complete log of your activities. ​  ​(Category:​ Productivity tools; Platform: Windows)//
  
  
  
-  author ​{Cavalli-Sforza,​ L.L an Feldman, M.W.},+=== scantron_multi_answer ===
  
 +[  [[https://​github.com/​MaciekChudek/​scantron_multi_answer|git]] ​ ] //A tool that allows grading of non-standard "​scantron"​ exam data where a single question can have multiple answers correct answers. ​ (Category: Productivity tools; Platform: Windows)//
  
 +You provide the "​scantron"​ data output and an answer key, and the grades per-student are automatically generated. Here I assume that if a question has n correct answers, each correct answer marked gives 1/n points and each incorrect answer marked gives -1/n, with 0 being the minimum score for a given question.
  
-} 
  
 +==== java ====
  
  
-</​bibtex>​+=== geo_adventure ===
  
 +[  [[https://​github.com/​MaciekChudek/​geo_adventure|git]] ​ ] //An Android based platform for making games where clues are '​unlocked'​ when a user gets within a close enough proximity of a GPS coordinate. Great for scavenger hunts and interactive stories. ​ (Category: Games and toys; Platform: Android)//
  
  
Line 255: Line 305:
  
  
- 
- 
- 
- 
- 
----- 
- 
- 
- 
- 
- 
- 
- 
-\\ 
- 
- 
- 
- 
- 
- 
- 
-\\ 
- 
- 
- 
- 
- 
- 
- 
-Just copy and paste the bibtex cites into your dokuwiki page, snuggled between "​bibtex",​ "/​bibtex"​ tags, like this: 
- 
- 
- 
- 
- 
- 
- 
-<​code>​ 
- 
- 
- 
- 
- 
- 
- 
-<​bibtex> ​ 
- 
- 
- 
-        ​ 
- 
- 
- 
-@BOOK{BandR85,​ 
- 
- 
- 
-  title = {Culture and the Evolutionary Process}, 
- 
- 
- 
-  publisher = {University Of Chicago Press}, 
- 
- 
- 
-  year = {1985}, 
- 
- 
- 
-  author = {Boyd, R. and Richerson, P. J.}, 
- 
- 
- 
-   notes = {This one will be critical but we'll need to be very careful about not misrepresenting the results}, 
- 
- 
- 
-} 
- 
- 
- 
- 
- 
- 
- 
-@BOOK{CSandF81,​ 
- 
- 
- 
-  title = {Cultural Transmission and Evolution: A Quantative Approach}, 
- 
- 
- 
-  publisher = {Princeton University Press}, 
- 
- 
- 
-  year = {1981}, 
- 
- 
- 
-  author = {Cavalli-Sforza,​ L.L an Feldman, M.W.}, 
- 
- 
- 
-} 
- 
- 
- 
- 
- 
- 
- 
-</​bibtex>​ 
- 
- 
- 
-</​code>​ 
- 
- 
- 
- 
- 
-====== Fun Stuff ====== 
- 
- 
- 
-=== GeoAdventure === 
- 
- 
-This is an android app I've been working on recently. I've made a whole [[GeoAdventure]] page for it. 
- 
- 
- 
- 
-=== Online cursive handwritting simulator === 
- 
- 
- 
-[[http://​coevolution.psych.ubc.ca/​Maciek/​temp/​project/​|A web page where whatever you type on your keyboard is hand-written on the screen]]. ​ 
- 
- 
- 
-I needed a project that I could do while teaching myself to use the HTML5 canvas. So far it doesn'​t do punctuation,​ only has lower-case letters and uses my own atrocious facsimile of handwriting,​ but it's functional. ​ 
- 
- 
- 
-Either watch my little intro text, or just press '​escape'​ on your keyboard to clear the buffer and start typing your own words. 
- 
- 
- 
-Please don't copy or use this code without asking me first.