======Introduction======
Hello. My name is Nicholas Brimmer. I am a student at Corning Community College, working on 2 degrees in Computer Science and Math Science. After college, I hope to pursue **[REDACTED]**. My many interests include **[REDACTED]**. I write code like old people make love, slow and sloppy. When I'm not writing absolutely horrendous code for class, I am working as a **[REDACTED]** for **[REDACTED]**.
_
.-./*)
_/___/ `.
U U 'Things I have learned from Computer Science.'
Made some friends for Pro Tip Turtle: Their names are **BSD_Bunny** and **OwlpenBSD**: **+9001 EXTRA CREDIT POINTS!!!!!!!**.
.___.
()() {o,o}
(°°) /)__)
(")(") _"_"_
* Matt Haas, Joe Oppenheim, and Shawn Meas (Great Tutor); in many, many, many, many cases, can fix entire programs with 2 keystrokes. **Baaahhhlliiiinnnn**. 8-)
* In the **HIGHLY** unlikely event that Matt, Joe, or Shawn cannot fix your problem, it can be fixed with many, many hours of meditation and contemplation with Google.
* **BUY A WHITEBOARD**: Doesn't have to be huge, but bigger is better. Doing pseudo-code/code is so much easier when you can draw pretty pictures with different colors, erase while not destroying the paper with the eraser, and you save trees. Who doesn't love saving trees, **THEY MAKE AIR** you know 8-).
* **[[http://en.wikibooks.org/wiki/Data_Structures|List of Data Structures]]**: Has general information about the various types of data structures.
* **PROTIP:** Save ALOT of typing: up/down arrows cycle through previously executed commands, tab auto-completes things in the terminal (finishes typing directories, files, etc.).
* **PROTIP: ** Use syntax highlighting in your Wiki to make yo codez allz purty. Supports a [[http://lab46.corning-cc.edu/wiki/syntax#syntax_highlighting|shiz ton]] of languages. Currently only need like 5: **%%C code
%%**; **%%C++ code
%%**; **%%GDB output
%%**; **%%Makefiles
%%**; & **%%Terminal output%%**.
* **PROTIP:** Comment absolutely EVERYTHING (Habit from Assembly Language; it will save A TON of time. Plus all teh womenz LOVE comments 8-).
* **PROTIP:** Clear the screen before running a C program: // The first line in main();
clrscr();
* **[[https://www.youtube.com/watch?v=m2n-LCb6Cvg|Binky's]] Three Pointer Rules:** **STR8 WISDOM.**
- A Pointer and it's Pointee are separate. Initially pointers don't point to anything, so don't forget to set up the pointee.
- Dereference a pointer to store or access a value at its pointee.
- Assignment operator (%%=%%) between pointers makes them point to the same pointee, it doesn't touch the pointee's value. This is sometimes called "sharing".
* **SUPER PROTIP:** Compile with debug symbols for GDB and run inside GDB. GDB gives more info on errors than GCC.
lab46:~/$ gcc code.c -g -o code
lab46:~/$ gdb ./code
(gdb) run
* **SUPER PROTIP:** Add an alias to make this permanent, and save some typing. **YOU'RE WELCOME.** 8-) 8-) 8-) 8-):
- lab46:~/$ nano .bashrc
- Scroll down to **#Aliases**
- Add **alias gcc='gcc -g'** to the bottom.
- Save and exit. Now when '**gcc**' is run, it while compile code with debug symbols automatically.
* **Brain Esploders: Shiz that makes my brain go "Wha-?!?" and "How the Fu-" then *BOOM*; brain esplodes.**
* The [[http://www.ioccc.org/|IOCCC]] (**The International Obfuscated C Code Contest**). [[http://www.ioccc.org/years.html|Winning entries]] are weird looking, working C code. A favorite example would be an entry by [[http://www.ioccc.org/years.html#1989|Brian Westley]] in 1989. If Westley's program is encoded with [[http://en.wikipedia.org/wiki/Rot13|ROT13]] (a simple letter substitution cipher) and/or reversed, it will still compile correctly. Also, the source code looks like the letter 'K'. **My Brain:** How the fu-?...***BOOM***.
* [[http://en.wikipedia.org/wiki/EICAR_test_file|EICAR Test File]]: A tiny text file used to test anti-virus programs. The file is 70 bytes and is a single string of weird looking code. **My Brain:** 1 string of unreadable text has been/will be detected by every anti-virus ever made...***BOOM***. Actually putting the string from the EICAR test file into my opus accidentally set off CCC's SonicWALL Anti-Virus/Firewall and locked me out of my opus for a little while. 8-O :-X. I haz a sowwy.
* "**//[[http://esolangs.org/wiki/Language_list|Esoteric programming languages]]//**": There's an extremely large number of them; just look at 1 or 2. **My Brain:** The fu-...How do ANY of these work?...***BOOM***.
* [[http://en.wikipedia.org/wiki/Illegal_prime|Illegal Primes]]: An illegal number?...***BOOM*** (Basically, take computer code -> convert code to ELF file -> convert ELF file into raw binary -> convert raw binary into absolutely huge number -> absolutely huge number = illegal prime number.)
* [[http://en.wikipedia.org/wiki/Metamorphic_code|Metamorphic Code]]: Code that when run outputs a logical equivalent version of its own code under some interpretation. This is similar to a **Quine**, except that the **Quine's** source code is exactly equivalent to its own output. **Metamorphic code** usually outputs machine code and not its own source code. **My Brain:** Another program that outputs its own source code...***BOOM***.
* [[http://en.wikipedia.org/wiki/Polyglot_%28computing%29|Polyglot]]: A computer program or script written in a valid form of multiple programming languages, which performs the same operations or output independent of the programming language used to compile or interpret it. Generally **polyglots** are written in a combination of C (which allows redefinition of tokens with a preprocessor) and a scripting language such as Lisp, Perl, or sh. The two most commonly used techniques for constructing a polyglot program are to make liberal use of languages which use different characters for comments and to redefine various tokens as others in different languages. Often good use is made of syntax quirks. **My Brain:** A program, written in a different language, hidden inside another compiled program that performs the same operation on the input regardless of how it is compiled...***BOOM***.
* [[http://en.wikipedia.org/wiki/Quine_%28computing%29|Quine]]: A computer program which takes no input and produces a copy of its own source code as its only output. **My Brain:** A program that outputs its own source code...***BOOM***.
* [[http://en.wikipedia.org/wiki/Self-interpreter|Self-interpreter]]: A programming language interpreter written in a programming language which can interpret itself. **My Brain:** A C interpreter written in C...***BOOM***.
* [[http://en.wikipedia.org/wiki/Self-modifying_code|Self-modifying Code]]: Code that alters its own instructions while it is executing. The modifications may be performed only during initialization (based on input parameters) or throughout execution ('on-the-fly'). **My Brain:** Code that changes WHILE it is running...***BOOM***.
* Beer does in fact make you a better programmer. This is a debatable fact but just ask any professional programmer (although programming ability exponentially decreases as beer increases; and there is the risk of not understanding what the "drunk code" does).
* The **L**ast **I**n **L**ast **O**ut stack shall now be known as a "Lindsay Lohan" (See what I did there? 8-) No insult intended to the L.I.L.O. stack).
* Computer Science talk is the best way to turn on any and all womanz, instant panty melter, works every time. 8-)