1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
476
476
476
476
476
476
476
476
476
476
476
476
<html>
...
<head>
...
<title>Mike Wermuth</title>
<meta name="description"
      content="22 year old programmer and graduate of Stockton University" />
<meta name="keywords" content="Human, Age22, NewJersey, Pennsylvania" />
<meta name="revised" content="September 2nd, 2012" />
<meta name="author" content="Mike Wermuth" />
<meta name="revised" content="May 7th, 2015" /><!-- actual -->
<base href="espp://uc.mikewermuth.NJ08203.USA.Earth.SolS.MilkyWay.Universe/" />
<link rel="stylesheet" type="text/css" href="./css/browserRenderOverride.css" />
<link rel="stylesheet" type="text/css" href="./css/humanRender.css" />
<script type="text/javascript" src="./includes/EasterEggs.js" />
</head>
<body>
...
<div class="project" id="MikeWermuthCom">
...
<span class="projectName">MikeWermuth.com</span>
<span class="keywords">Personal, Website, Stylish</span>
<div class="aboutProject">
...
Welcome to my lovely website < MikeWermuth.com >, make yourself at home. Kick off your shoes and feel free to put your feet up on the <table>! This is a unfinished piece of work, a lot still needs to be done. Some interactive features are only partially finished (code disclosures and a mystery). Also some links dont go anywhere and grammar can be a mess or the stories just aren't very interesting. Just to simply add (since I don't have the time to actually add it to the site), I am also the developer of the Unofficial Rooster Teeth iOS App which I have been maintaining since 2013. One of my best skills is the ability to quickly pick up on new languages and techniques. For my new job at the school, I needed to learn an entirely new language (Cold Fusion), in just a weeks time I was creating an entire website from scratch. As you can see from this website, I list projects in many different languages which just supports what I've just said. Please take a look around and enjoy your stay checking out my cool website idea. No this website is not yet optimized for all browsers (still in development... slowly). This website is a resume but if you want something a little bit more formal click here. Hey! Also check me out on GitHub https://github.com/werm098 :) Incase you are worried or confused... Your browser is not broken. I've made my website in this way because this is how I am creative, with code. Feel free to take a look at the source, oh wait you already are. <- Horrible Joke I hope you enjoy your stay! Or at least enough to comment and share at the bottom. Also, incase you were wondering why I put in some parallax scrolling... It seemed like fun.
</div>
</div>
<div id="AboutMe"> <!-- begin life story -->
...
I've been playing with computers and technology my entire life. I've always had a fascination for what a computer can do. However to skip my life story, I really got into programming with my first iOS app entitled "UnTouchable". It is a very basic iOS game that you can read more about below. What was so exciting about this game was that I taught myself how to make it. Through various online tutorials and such. After creating that game, I was introduced to Java and actual programming methodologies and tactics in high school. In high school I gained a great background in programming and took my new knowledge to new levels by teaching myself even more languages and and getting computers to do more and more! Thanks Daub! You can find out even more about me in various parts of this site. So take the time to get to know me and my projects.
</div>
<div class="games" id="ConquerClub">
...
<span class="gameName">Conquer Club</span>
<span class="keywords">Online, Strategy, Game</span>
I like to play Conquer Club occasionaly.
</div>
<div class="games" id="ArcadeGames">
...
<span class="gameName">I own an arcade.</span>
<span class="keywords">Arcade, AirHockey, Racing, PHUN!</span> I own an arcade with my father. We've had our own since 2003 but I've literally grown up in arcades. Greatest game ever is the 1981 classic Galaga. Not only because I have had the cabinet in my house my entire life, or that it was in my room for 2 of those years, but because it is just that amazing. Currently in the arcade we have many types of games, the best of which are shooting games and our air hockey tables. In total there are about 40 cabinets/games. My father and I are the only ones that buy/sell/fix/repair/resupply everything. Our garage, backyard, and porch are filled with games.
</div>
</body>
</html>

<php?
...
include_once("./dbConnect.php");
$showReleased = $_GET['showReleased'];
$projectSQL = mysql_fetch_array("SELECT * FROM projects
                                 WHERE released='"
.($showReleased=="yes"?"yes":"no")."'
                                 ORDER BY dateFinished DESC"
);
if ($_GET['shouldJson'] == "yes")
echo json_encode(mysql_fetch_array($projectSQL));
else
while ($project = mysql_fetch_array($projectSQL)) {
...
echo <<<END
<div class="project" id="$project[idName]">
<span class="projectName">$project[idName]</span>
<span class="keywords">$project[keywords]</span>
<div class="aboutProject">$project[about]</div>
<div class="keyFeatures">$project[keyFeatureDescription]<ol>
END;

$projectFeaturesSQL = mysql_fetch_array("SELECT feature FROM projectFeaturesList
                                         WHERE projectID='$project[id]'
);
while ($feature = mysql_fetch_array($projectFeaturesSQL)) { echo "<li>$feature[feature]</li>"; }
echo "</ol></div></div>";
}
?>

//Prettified output from the above PHP
:PHP Output:
...
<div class="project" id="Genesis">
...
<span class="projectName">Genesis</span>
<span class="keywords">Web, Upload/File, Management, CrossBrowser</span>
<div class="aboutProject">
...
Genesis is a web file uplaod and managment system.
</div>
<div class="keyFeatures">
...
You gotta love that cross browser compatibility :)
<ol>
...
<li>Share link via Email, Facebook, Twitter, and Google+.</li> <li>Warnings when sharing files/folders with privacy or a password.</li> <li>Click to copy link (Flash with some JS).</li> <li>Went crazy on the security...</li> <li>Clearing image description text from files (Code Injection).</li> <li>No direct file access, all proxied through PHP script.</li> <li>Only specified filetypes can be previewed in browser.</li> <li>Upload directory is non executable.</li> <li>File names changed on server and original saved in database.</li> <li>Actual filename is not accessible.</li> <li>Access Ticket system that requires authentication to access files.</li> <li>Folders "Vaults", no folderception though (Folders in folders).</li> <li>Ajax folder refresh.</li> <li>File and folder paswords and privacy.</li> <li>Public files have limited access. If not logged in and allowed all features.</li> <li>"Only Me" privacy that only the owner can see.</li> <li>Main folder inner folder previews.</li> <li>Add precedence to files and folders to bring them to the top of the list.</li>
</ol>
</div>
</div>
<div class="project" id="PartyOnDemandSystem">
...
<span class="projectName">Party On Demand System</span>
<span class="keywords">Parties, Availability, Members, AdminBackend</span>
<div class="aboutProject">
...
Party On Demand System (PODS) is a website for party promoters, it gives the promoter a great deal of tools. Users register and input their "availability" (What days they will be available to go to an event). From this, the promoter is able to plan events for days where there are a lot of "available" members. There is also a score system called a user's "reliability score". This score is made from the amount of events a user has been to, the amount they said they would go to, and the amount they said they were available for. Points are also awarded to members who attend events. Those points are then used to redeem rewards such as free admission, drinks, or bottles.
</div>
<div class="keyFeatures">
...
Most of the cool features for this site is what the promoter gets to see.
<ol>
...
<li>Calendar with the amount of users available for each day.</li> <li>User availability is also shown by gender.</li> <li>Creates a Facebook event and invites all members to the event.</li> <li>Can send email and SMS messages to users about events or promotions.</li> <li>Manualy by user, date, or all members or through the automated messaging system.</li> <li>Admin user list to view all user information.</li> <li>User statistics reset.</li> <li>Member password recovery system.</li> <li>Link member accounts with Facebook.</li>
</ol>
</div>
</div>
<div class="project" id="PartyHopp">
...
<span class="projectName">PartyHopp</span>
<span class="keywords">Parties, InteractiveVenueMap, UserCommunity</span>
<div class="aboutProject">
...
PartyHopp is a user community for nightlife in the Atlantic County NJ area. It features a database of bars, clubs, and casinos for the Atlantic County area. These venues are displayed on an interactive map where users can say they are "hopping" on a specific night. Other users can see who is hopping at a specific venue for any given night. The idea behind this is that instead of having a promoter be limited to specific nights and specific venues, the users is able to organize with each other as to where the nightlife is on a given night.
</div>
<div class="keyFeatures">
...
The map system with this site is my favorite part!
<ol>
...
<li>Interactive map of venues.</li> <li>Past events that you have gone to.</li> <li>Past events photo galeries (user uploaded).</li> <li>Photo gallery image lightbox.</li> <li>Member password recovery system.</li> <li>Search map by ZIP code or city and state.</li>
</ol>
</div>
</div>
:End Output:

$(document).ready(function() {
...
Uploader = new SimpleUploader(); Uploader.init(); ImaDJ = new Turntable(); //Override url location to new site ImaDJ.url = "plug.dj"; ImaDJ.getTurntableStats(); ImaDJ.activateTurntableBot(); //This block is boring...
}

function Turntable () {
...
this.url = "www.turntable.fm";

this.getTurntableStats = function() {
...
$.ajax({
...
type: "POST",
url: this.url,
data: {username: "werm098", type: "stats"},
dataType: 'json',
success: function(json) {
...
if (json.length > 0) {
...
$("#turntableFans").html(json[0].fans); $("#turntablePoints").html(json[0].points); $("#turntableLastSeen").html(json[0].lastSeen);
} else if (confirm("Failed to retrieve awesome stats.\nWanna to try again bud?")) this();
}
});
}

this.activateTurntableBot = function() {
...
var version = 1.4; var requiresArray = ["Node.js", "Turntable API"]; var features = ["Auto DJ - Gets on stage automatically when there is less than a set number",                 "Manual DJ - Can be told to get on and off stage by certain members",                 "Greets users when they join the room",                 "Announces when new DJ's get on deck",                 "Pretends to have a Siri plugin to fool people",                 "Has many commands for interactivity",                 "EasterEggs abound :)",                 "Can be used to talk as... For the Siri prank and other pranks",                 "Can awesome songs with a command",                 "Says hi back if you say hey :)",                 "Says NHL jokes if Knock Knock is playing",                 "Has a zombie plan and will tell you it (Shaun of the Dead)",                 "Adds songs to its queue that I play",                 "Can be told to add the current song playing to its queue",                 "Can be told to remove the current song playing from its queue",                 "Can be told to skip the song it is playing",                 "Can list commands in PM"]; var html = "<div class='project' id='TurntableBot'>"; html += "<span class='projectName'>Turntable Bot</span>"; html += "<span class='keywords'>Turntable.fm, bot, Awesome, Interactive, Node.js</span>"; html += "<div class='aboutProject'>"; html += "If you dont know what Turntable.fm is then it is somewhat hard to explain this bot "; html += "so you should check out the about page for Turntable. Now that you know what Turntable"; html += "is, my bot is basically a computer controlled user that can join a room and be interacted"; html += "with. It's a really fun project that I update from time to time.</div>"; html += "<div class='keyFeatures'><ol>"; for (var feature in features) html += "<li>"+feature+"</li>"; html += "</ol></div></div>"; $("#aboutTurntableBot").html(html);
}
}

function SimpleUploader () {
...
this.init = function() {
...
var version = 1.0; var requiresArray = ["jQuery", "File API"]; var features = ["Supports ALL major browsers!",                 "Open Source"]; var html = "<div class='project' id='SimpleUploader'>"; html += "<span class='projectName'>SimpleUploader</span>"; html += "<span class='keywords'></span>"; html += "<div class='aboutProject'>"; html += "SimpleUploader is a fully featured javascript cross browser multi-file upload solution."; html += "Tested and working on: Chrome 6+, FireFox 3.6+, Safari 5+, IE 7+*"; html += "  *should work with IE6 but is untested."; html += "Using the javascript File API it is able to access local files."; html += "The File API allows for upload progression monitoring, this is used by"; html += "displaying the upload percent of each file and the total upload percentage."; html += "IE support is a fallback approach that does not use the File API and instead"; html += "uses an Ajax request on an iFrame."; html += "<div class='keyFeatures'><ol>"; for (var feature in features) html += "<li>"+feature+"</li>"; html += "</ol></div></div>"; $("#aboutSimpleUploader").html(html);
}
}

//Project.h - Somewhat useless info, more for completion :)
@interface Project : NSObject {
...
NSString *projectName; NSString *projectIDName; NSString *aboutProject; NSString *keyFeatures; NSArray *keywords; NSArray *features;
}

...
@property (nonatomic, retain) NSString *projectName; @property (nonatomic, retain) NSString *projectIDName; @property (nonatomic, retain) NSString *aboutProject; @property (nonatomic, retain) NSString *keyFeatures; @property (nonatomic, retain) NSArray *keywords; @property (nonatomic, retain) NSArray *features; -(id)initWithName:(NSString *)name             about:(NSString *)about       keyFeatures:(NSString *)keyFeatures          keywords:(NSArray *)keywords          features:(NSArray *)features; -(NSString *)htmlOutput;
@end

//Project.m
#import "Project.h"
//Create AppendString and StringFormat macros
#define AS(A,B) [(A) stringByAppendingString:(B)]
#define SF(A,B) [NSString stringWithFormat:(A), (B)]
@implementation Project
...
@synthesize projectName, projectIDName, aboutProject, keyFeatures, keywords, features;

-(id)initWithName:(NSString *)name
            about:(NSString *)about
      keyFeatures:(NSString *)keyFeatures
         keywords:(NSArray *)keywords
         features:(NSArray *)features {
...
self = [super init]; [self setProjectName:name]; [self setProjectIDName:[name stringByReplacingOccurrencesOfString:@" " withString:@""]]; [self setAbout:about]; [self setKeyFeatures:keyFeatures]; [self setKeywords:keywords]; [self setFeatures:features]; return self;
}

-(NSString *)htmlOutput {
...
NSString *html = SF(@"<div class='project' id='%@'>", projectIDName); html = AS(html, SF(@"<span class='projectName'>%@</span>", name)); html = AS(html, @"<span class='keywords'>"); for (id keyword in keywords) html = AS(html, SF(@"%@, ", keyword)); //Trim the last comma and space html = [html substringToIndex:[html length]-2]]; html = AS(html, @"</span>"); html = AS(html, SF(@"<div class='aboutProject'>%@</div>", aboutProject)); html = AS(html, SF(@"<div class='keyFeatures'>%@<ol>", keyFeatures)); for (id feature in features) html = AS(html, SF(@"<li>%@</li>", feature)); html = AS(html, @"</ol></div></div>"); return html;
}

-(id)init {
...
return [self initWithName:@""                     about:@""               keyFeatures:@""                  keywords:nil                  features:nil];
}

-(void)dealloc {
...
[projectName release]; [aboutProject release]; [keyFeatures release]; [keywords release]; [features release]; [super dealloc];
}

@end

//main.m
#import "Project.h"
#define UNIVERSALUSERNAME @"werm098"
int main(int argc, char *argv[]) {
...
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; //Readability //Explosion NSString *about = @"Explosion was my first attempt at an action arcade game. "; about = AS(about, @"The main idea is to smash your way to the top of the leader boards. "); about = AS(about, @"Remember that I'm not an artist, so the graphics are for the most "); about = AS(about, @"part... Terrible. The nice thing about this game is that it was "); about = AS(about, @"written on top of a game engine called cocos2d which, led to some "); about = AS(about, @"nice \"simulated\" graphics. In that I was able to programmably color "); about = AS(about, @"the same image to represent different elements of gameplay. I also "); about = AS(about, @"took advantage of the particle system for some nice effects."); NSString *keyFeatures = @"Fun easy game to pickup and play and my first game with game engine."; NSArray *keywords = @[@"Action",@"Arcade",@"cocos2d",@"Fun"]; NSArray *features = @[@"Fast paced gameplay.",                       @"Arcade",                       @"Programmably colored game elements.",                       @"cocos2d",                       @"Fun"]; Project *explosion = [[Project alloc] initWithName:@"Explosion"                                              about:about                                        keyFeatures:keyFeatures                                           keywords:keywords                                           features:features]; //Xercise - I do know how to spell "exercise" about = @"Ever wanted to \"achieve your maxium peak and take yourself to the next level\"?"; about = AS(about, @"Well, with Xercise you can! Xercise is my all in one personal workout trainer. "); about = AS(about, @"Xercise is basically one amazing stopwatch. With it, you are able to take "); about = AS(about, @"full control of your workout. There is a great future for this application"); about = AS(about, @"and when I get the time to create that future it will be awesome."); keyFeatures = @"Create your own workouts and have fun!"; keywords = @[@"Exercise",@"Workout",@"Create",@"Fun"]; features = @[@"Create your own workout",              @"Listen and control your music",              @"Good for you",              @"Fun"]; Project *xercise = [[Project alloc] initWithName:@"Xercise"                                            about:about                                      keyFeatures:keyFeatures                                         keywords:keywords                                         features:features]; //UnTouchable about = @"Remember the first time you made something and when you were done"; about = AS(about, @"you just thought \"I am amazing and a genius! No one is better"); about = AS(about, @"than me!\"? Yeah me either, but whatever.... I could finally go outside."); about = AS(about, @"Over the course of my Oh10 summer break from"); about = AS(about, @"high school I made this game as my first iOS app. This game was"); about = AS(about, @"created with very very very little knowledge of what I was doing"); about = AS(about, @"I was able to use online tutorials and examples to create this"); about = AS(about, @"game. The evidence is in the fact that almost everything is"); about = AS(about, @"a UIImage and the millions of if statements within the code."); about = AS(about, @"However, I did not wimp out on the amount of cool features included!"); keyFeatures = @"First iOS app and the best programming organization of any other app!"; keywords = @[@"Fun",@"Arcade"]; features = @[@"Easy to play",              @"Fun to get frustrated with",              @"Online Leader boards",              @"Change the play field background image"]; Project *unTouchable = [[Project alloc] initWithName:@"UnTouchable"                                                about:about                                          keyFeatures:keyFeatures                                             keywords:keywords                                             features:features]; //Now do nothing... just release the memory and finish executing NSVideoGames *videoGames = [[NSVideoGames alloc] initWithXBL:UNIVERSALUSERNAME]; [videoGames setSteamLink:@"http://steamcommunity.com/id/werm098"]; [videoGames addXblGame:@"NHL (whatever year it is)" withLink:@"http://www.easports.com/nhl"]; [videoGames addXblGame:@"HALO (All)" withLink:@"http://www.bungie.net/halonow"]; [videoGames addXblGame:@"Battlefield (All)" withLink:@"http://www.battlefield.com/"]; [videoGames addSteamGame:@"ArmA II" withLink:@"http://store.steampowered.com/app/33900/"]; [videoGames addGameMod:@"DayZ (ArmA II)" withLink:@"http://www.dayzmod.com/"]; [videoGames viewXBL]; [explosion release]; [xercise release]; [unTouchable release]; [pool release]; return 0;
}

public class JavaPrograms extends Awesomeness {
...

public class JavaProject {
...

private String name, idName, about, keyFeatures;
private String[] keywords, features;

Project (String name, String idName, String about, String keyFeatures,
         String[] keywords, String[] features) {
...
this.name = name; this.idName = idName; this.about = about; this.keyFeatures = keyFeatures; this.keywords = keywords; this.features = features;
}

public String formatHTML() {
...
String html = "<div class='project' id='"+idName+"'>"; html += "<span class='projectName'>"+name+"</span>"; html += "<span class='keywords'>"; for (String keyword : keywords) html += keyword + ", "; //Trim the last comma and space html = html.substring(0, html.length()-2); html += "</span>"; html += "<div class='aboutProject'>"+about+"</div>"; html += "<div class='keyFeatures'>"+keyFeatures+"<ol>"; for (String feature : features) html += "<li>" + feature + "</li>"; html += "</ol></div></div>"; return html;
}

}

public static void main(String[] args) {
...
//TODO well... its kinda obvious what is to do
}

}
login:
>