imported hobo11 data... this is a fragment of vmware svn, whatever I had
[tues-crep.git] / sites / hobo11.nerdland.org / resume.php
blob8dc03316784ad776bfbed5411e36f5df2e56301d
1 <?php
3 // HTML Resume Template in PHP
4 // version 2.2, 2006-08-06
5 //
6 // Copyright (c) 2002-2006 Alex King
7 // http://www.alexking.org/software/resume/
8 //
9 // **********************************************************************
10 // This program is free software; you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation; either version 2 of the License, or
13 // (at your option) any later version.
15 // This program is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // General Public License for more details.
20 // http://www.gnu.org/copyleft/gpl.html
22 // *****************************************************************
25 /* -- INITIALIZE DATA ------------------------------------------------------------ */
27 // we want to see any errors so we can fix them
29 ini_set('display_errors', '1');
30 ini_set('error_reporting', E_ALL);
31 error_reporting(E_ALL);
33 $bio = array();
34 $data = array();
35 $data['jobs'] = array();
36 $prefs = array();
38 /* -- ENTER DATA ----------------------------------------------------------------- */
40 // start editing here
42 $bio['name'] = "Kingdon Patrick Barrett";
43 $bio['phone'] = "(585) 239-6035";
44 $bio['email'] = "kingdon@tuesdaystudios.com";
45 $bio['address'] = "125 Tech Park Drive STE 1102";
46 $bio['city'] = "Rochester";
47 $bio['state'] = "NY";
48 $bio['zip'] = "14623";
50 // set to 1 to show this info on the page, 0 to hide it
52 $prefs['show_phone'] = 1;
53 $prefs['show_email'] = 1;
54 $prefs['show_address'] = 1;
56 // if you want to be able to enter HTML (links, etc.) in your descriptions, set this to 1. This means you need to manually escape any content as HTML.
58 $prefs['encode_output'] = 1;
60 // enter job data here
62 $data['objective'] = "To connect with people and organizations that will benefit from my skills, to broaden my own base of experience, and to deliver prompt, reliable service meeting and exceeding the high standards that a business environment demands.";
64 // add more to this array as needed
65 $data['skills_technologies_projects'] = array(
67 "Internet TV and Telephony, Blogging, Web 2.0"
68 ,"Storage Area Networks and Data Retention"
69 ,"High Availability and Server Clustering"
70 ,"Social Networking and Language Acquisition"
74 // add more to this array as needed
75 $data['education_interests'] = array(
77 "Rochester Institute of Technology, degree anticipated in May 2008, BS Computer Science"
78 ,"36 credits (minor) in Arabic Language, 12 credits (concentration) in Writing Studies"
79 ,"President and Founder, Tuesday Studios at Venture Creations Business Development Lab"
80 ,"Interactive Collaborative Technologies Specialist, RIT Lab for Applied Computing/CASCI"
81 ,"Computer Science House, Phi Delta Theta, Empty Sky Go Club, Korean Student Association"
82 ,"Tutor and Teaching Assistant, Golisano College of Computing and Information Sciences"
85 // this is where you put all your job information
86 // add more of these arrays as needed
88 $data['jobs'][] = array(
90 'period' => "2005-Present"
91 ,'employer' => "Venture Creations Business Development Lab"
92 ,'location' => "Rochester, NY"
93 ,'employer_info' => "Tuesday Studios builds and markets innovative middleware solutions."
94 ,'employer_link' => "http://www.venturecreations.org/"
95 ,'positions' => array('President and Founder, Network Admin' => array(
97 "Establish a secure and reliable distributed computing system to operate inside and across hostile network environments."
98 ,"Catalog, quantify, establish blame, and resolve issues relating to intermittency in network services, from internal sources as well as upstream providers."
99 ,"Design, build and maintain a top-shelf data center on a shoestring budget, minding high bandwidth applications as well as least-common-denominator and remote access."
100 ,"Satisfy inter-departmental research goals with variable requirements, and do my best to keep pace with the research goals of the University."
103 ,'show' => 0 // set to 0 to hide this job, 1 to show it
106 $data['jobs'][] = array(
108 'period' => "2004-2007"
109 ,'employer' => "Rochester Institute of Technology"
110 ,'location' => "Rochester, NY"
111 ,'employer_info' => "The primary objective of the CASCI is to create faculty/student and industry/government ventures to study and implement future CyberInfrastructure technologies, for solving computing problems in focused domains where we have renowned local expertise in the Institute."
112 ,'employer_link' => "http://www.rit.edu/~rc/"
113 ,'positions' => array('Collaboration Technologies Specialist' => array(
115 "Work with computers to enable communication between people across all kinds of technical borders, supporting the free exchange of information and ideas."
116 ,"Explore collaborative technologies like Wikis, Internet TV and IP Telephony, and become familiar with technologies behind the so-called Web 2.0 revolution."
117 ,"Connect directly with RIT faculty and administration and explore creative and independent problem solving techniques in my capacity as a researcher."
120 'Lab Assistant' => array(
121 "Responsible for timely attendance of tutoring office hours and labs."
122 ,"Support computing resources in several labs and troubleshoot issues between inter-dependent systems."
123 ,"Facilitate student programming activities and explain difficult course materials to enhance group learning."
126 ,'show' => 0 // set to 0 to hide this job, 1 to show it
129 $data['jobs'][] = array(
131 'period' => "2005-2006"
132 ,'employer' => "American Fiber Systems"
133 ,'location' => "Rochester, NY"
134 ,'employer_info' => "AFS builds, owns, and maintains fiber networks in nine major metropolitan areas across the United States of America. Business operations are homed here in Rochester, NY at the main office in the Meridian Centre Office Park off Winton Avenue."
135 ,'employer_link' => "http://www.afsnetworks.com/"
136 ,'positions' => array('IT Associate' => array(
138 "Built internal-use-only web application using Apache and PHP, integrating with a pre-existing Active Directory environment.",
139 "Testing and deployment of IBM servers, maintenance of previously deployed Sun and Windows servers.",
140 "Migration of proprietary NEC PBX system to Cisco IP Phones with Linux/Asterisk Open Source Telephony Platform."
143 ,'show' => 1 // set to 0 to hide this job, 1 to show it
146 $data['jobs'][] = array(
147 'period' => "Summer 2005"
148 ,'employer' => "Robinson Home Products"
149 ,'location' => "Buffalo, NY"
150 ,'employer_info' => "Robinson Home Products markets quality kitchen utensils and food preparation tools. Robinson evolved from a manufacturer of cutlery, kitchen tools, scissors, and fine edged industrial components."
151 ,'employer_link' => "http://www.robinsonknife.com/"
152 ,'positions' => array(
153 'Summer Internship' => array(
154 "Inventory management, packing and shipping for Wal-Mart and other customers, and new employee orientation.",
155 "Handled integration issues for SuSE Enterprise Linux, Novell Groupwise and Blackberry Enterprise Server."
157 ,'show' => 1
160 $data['jobs'][] = array(
161 'period' => "2003-2004"
162 ,'employer' => "Financial Institutions, Inc."
163 ,'location' => "Warsaw, NY"
164 ,'employer_info' => "Financial Institutions, Inc. is a bank-holding Company that provides consumer, commercial and agricultural banking services through our bank and a non-bank subsidiaries."
165 ,'employer_link' => "http://www.fiiwarsaw.com/"
166 ,'positions' => array(
167 'Intranet Developer' => array(
168 "Ground-up implementation of XML-based Intranet workflow and form processing software on a Microsoft IIS environment.",
169 "Planned and started development of automated B2B/EDI services for integration of office supply chain with StaplesLink.com."
171 ,'show' => 1
174 /* -- DONE ENTERING DATA - you shouldn't need to edit below this line ------------ */
176 /* ------------------------------------------------------------------------------- */
178 /* -- OUTPUT --------------------------------------------------------------------- */
180 function pad_and_wrap($string, $pad_to = 20, $pad_with = ' ', $wrap_at = 80, $bullet = '') {
181 global $prefs;
182 if (!empty($prefs['encode_output']) && $prefs['encode_output'] == 1) {
183 $string = strip_tags($string);
185 if (!empty($bullet)) {
186 $string = $bullet.$string;
188 if (strlen($string) > $wrap_at) {
189 $wrap_line_at = strrpos(substr($string, 0, $wrap_at), ' ');
190 $output = str_pad('', $pad_to, $pad_with).substr($string, 0, $wrap_line_at);
191 $remainder = substr($string, $wrap_line_at + 1);
192 if (strlen($remainder) > 0) {
193 $output .= "\n".pad_and_wrap($remainder, ($pad_to + strlen($bullet)), $pad_with, ($wrap_at - strlen($bullet)), '');
196 else {
197 $output = str_pad('', $pad_to, $pad_with).$string;
199 return $output;
202 function encode_output($str) {
203 global $prefs;
204 if (!empty($prefs['encode_output']) && $prefs['encode_output'] == 1) {
205 return htmlentities($str);
207 else {
208 return $str;
212 // CSS
214 ob_start();
216 body {
217 margin: 10px;
219 p, td, span, li, a {
220 font-family: verdana, arial, helvetica, sans-serif;
222 h1 {
223 font: 90% verdana, arial, helvetica, sans-serif;
224 font-weight: bold;
225 margin: 0 0 5px 0;
227 h2 {
228 border-bottom: 1px solid #666;
229 clear: both;
230 font: 80% verdana, arial, helvetica, sans-serif;
231 font-weight: bold;
232 margin: 15px 0 10px 0;
233 padding: 0 0 3px 0;
234 width: 700px;
236 h3 {
237 float: left;
238 font: 80% verdana, arial, helvetica, sans-serif;
239 font-weight: bold;
240 margin: 0 0 5px 0;
241 padding: 0;
242 width: 446px;
244 li {
245 font-size: 70%;
246 margin: 0 0 3px 20px;
247 padding: 0;
250 font-size: 70%;
251 margin: 0 0 10px 0;
252 padding: 0;
253 width: 575px;
255 body ul {
256 margin: 0 0 0 125px;
257 padding: 0;
258 width: 575px;
260 body div ul {
261 margin: 3px 0 0 0;
262 padding: 0;
263 width: 575px;
265 #bio_left {
266 font-size: 75%;
267 float: left;
268 width: 350px;
270 #bio_right {
271 font-size: 75%;
272 float: left;
273 text-align: right;
274 width: 350px;
276 .company {
277 clear: both;
278 margin: 0 0 5px 0;
279 padding: 0;
281 .data {
282 padding-left: 125px;
284 .date {
285 clear: left;
286 float: left;
287 padding-top: 2px;
288 width: 125px;
290 .job {
291 clear: both;
292 width: 700px;
294 .job_data {
295 float: left;
296 width: 575px;
298 .location {
299 clear: right;
300 float: left;
301 text-align: right;
302 width: 125px;
304 .position {
305 font-style: italic;
306 margin: 0 0 5px 0;
308 #references {
309 margin-top: 20px;
311 #meta {
312 margin-top: 30px;
314 <?php
315 $css_screen = ob_get_contents();
316 ob_end_clean();
318 ob_start();
320 body {
321 margin: 0px;
323 p, td, span, li, a {
324 font-family: verdana, arial, helvetica, sans-serif;
326 h1 {
327 font: 14pt verdana, arial, helvetica, sans-serif;
328 font-weight: bold;
329 margin: 0 0 5px 0;
331 h2 {
332 border-bottom: 1px solid #666;
333 clear: both;
334 font: 11pt verdana, arial, helvetica, sans-serif;
335 font-weight: bold;
336 margin: 15px 0 10px 0;
337 padding: 0 0 3px 0;
338 width: 100%;
340 h3 {
341 font: 11pt verdana, arial, helvetica, sans-serif;
342 font-weight: bold;
343 margin: 0 0 2px 0;
344 padding: 0;
346 li {
347 font-size: 10pt;
348 margin: 0 0 3px 5%;
349 padding: 0;
352 font-size: 10pt;
353 margin: 0 0 10px 0;
354 padding: 0;
356 body ul {
357 margin: 0 0 0 20%;
358 padding: 0;
360 body div ul {
361 margin: 3px 0 0 0;
362 padding: 0;
364 #bio_left {
365 font-size: 11pt;
366 float: left;
367 width: 50%;
369 #bio_right {
370 font-size: 11pt;
371 float: left;
372 text-align: right;
373 width: 50%;
375 .company {
376 clear: both;
377 margin: 0 0 5px 0;
378 padding: 0;
380 .data {
381 padding-left: 20%;
383 .date {
384 clear: left;
385 float: left;
386 padding-top: 2px;
387 width: 20%;
389 .job {
390 clear: both;
391 width: 100%;
393 .job_data {
394 float: left;
395 width: 80%;
397 .location {
398 clear: right;
399 float: right;
400 text-align: right;
401 width: 20%;
403 .position {
404 font-style: italic;
405 margin: 0 0 5px 0;
407 #references {
408 margin-top: 20px;
410 #meta {
411 display: none;
413 <?php
414 $css_print = ob_get_contents();
415 ob_end_clean();
417 ob_start();
418 $split_length = floor(strlen($bio['email']) / 4);
420 function email() { // try to avoid spam trollers, intentionally complex
421 var a = "<?php print(substr($bio['email'], 0, $split_length)); ?>";
422 var b = "<?php print(substr($bio['email'], $split_length, $split_length)); ?>";
423 var c = "<?php print(substr($bio['email'], ($split_length * 2), $split_length)); ?>";
424 var d = "<?php print(substr($bio['email'], ($split_length * 3), ($split_length + (strlen($bio['email']) % 4)))); ?>";
426 e_string = "<a href=\"ma" + "ilto:" + a + b + c + d + "\">" + a + b + c + d + "</a>";
427 document.write(e_string);
429 <?php
430 $js = ob_get_contents();
431 ob_end_clean();
433 if (isset($_REQUEST["output"])) {
434 $output = stripslashes($_REQUEST["output"]);
436 else {
437 $output = 'html';
439 switch ($output) {
440 case "css_screen":
441 header("Content-type: text/css");
442 print($css_screen);
443 break;
444 case "css_print":
445 header("Content-type: text/css");
446 print($css_print);
447 break;
448 case "js":
449 header("Content-type: text/javascript");
450 print($js);
451 break;
452 case "html":
453 if (isset($_GET['contained']) && $_GET['contained'] == 1) {
454 header("Content-Type: application/force-download");
455 header("Content-Type: application/octet-stream");
456 header("Content-Type: application/download");
457 header("Content-Disposition: attachment; filename=\"resume.html\"");
460 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
461 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
462 <!-- HTML Resume Template from http://www.alexking.org/software/resume/ -->
463 <html>
464 <head>
465 <title><?php print(encode_output($bio['name'])); ?></title>
466 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
467 <?php
468 if (isset($_GET['contained']) && $_GET['contained'] == 1) {
470 <style type="text/css" media="screen">
471 <?php
472 print($css_screen);
474 </style>
475 <style type="text/css" media="print">
476 <?php
477 print($css_print);
479 </style>
480 <script type="text/javascript">
481 <?php
482 print($js);
484 </script>
485 <?php
487 else {
489 <style type="text/css" media="screen">
490 @import url(/resume.php?output=css_screen);
491 </style>
492 <link rel="stylesheet" type="text/css" media="print" href="/resume.php?output=css_print" />
493 <script type="text/javascript" src="/resume.php?output=js"></script>
494 <?php
497 </head>
499 <body>
501 <h1><?php print(encode_output($bio['name'])); ?></h1>
503 <p id="bio_left">
504 <?php
505 if ($prefs['show_phone'] == 1) {
506 print(encode_output($bio['phone']).'<br />');
508 if ($prefs['show_email'] == 1) {
510 <script type="text/javascript">email();</script>
511 <?php
514 </p>
515 <p id="bio_right">
516 <?php
517 if ($prefs['show_address'] == 1) {
518 print(encode_output($bio['address']).'<br />'
519 .encode_output($bio['city']).', '
520 .encode_output($bio['state']).' '
521 .encode_output($bio['zip'])
525 </p>
527 <h2>OBJECTIVE</h2>
528 <p class="data"><?php print(encode_output($data['objective'])); ?></p>
530 <h2>EXPERIENCE</h2>
531 <?php
532 foreach ($data['jobs'] as $job) {
533 if ($job['show'] == 1) {
534 if (!empty($job['employer_link'])) {
535 $link = array(
536 '<a href="'.$job['employer_link'].'">'
537 ,'</a>'
540 else {
541 $link = array('','');
544 <div class="job">
545 <p class="date"><?php print(encode_output($job['period'])); ?></p>
546 <div class="job_data">
547 <h3><?php print($link[0].encode_output($job['employer']).$link[1]); ?></h3>
548 <?php
549 if (!empty($job['location'])) {
551 <p class="location"><?php print(encode_output($job['location'])); ?></p>
552 <?php
554 else {
556 <p class="location">&nbsp;</p>
557 <?php
559 if (!empty($job['employer_info'])) {
561 <p class="company"><?php print(encode_output($job['employer_info'])); ?></p>
562 <?php
564 foreach ($job['positions'] as $title => $position) {
566 <p class="position"><?php print(encode_output($title)); ?></p>
567 <ul>
568 <?php
569 foreach ($position as $responsibility) {
570 print(" <li>".encode_output($responsibility)."</li>\n");
573 </ul>
574 &nbsp;
575 <?php
578 </div>
579 </div>
581 <?php
585 <h2>SKILLS, TECHNOLOGIES &amp; PROJECTS</h2>
586 <ul>
587 <?php
588 foreach ($data['skills_technologies_projects'] as $temp) {
589 print(" <li>".encode_output($temp)."</li>\n");
592 </ul>
594 <h2>EDUCATION &amp; INTERESTS</h2>
595 <ul>
596 <?php
597 foreach ($data['education_interests'] as $temp) {
598 print(" <li>".encode_output($temp)."</li>\n");
601 </ul>
603 <!--<p id="references">LinkedIn Profile: <a href="http://www.linkedin.com/pub/2/a/731">http://www.linkedin.com/pub/2/a/731</a> - Direct references available upon request.</p>-->
605 <p id="meta">
606 <?php
607 if (empty($_GET['contained']) || $_GET['contained'] != 1) {
609 <span id="versions"><a href="./resume.php">HTML version</a> | <a href="./resume.pdf">E-mailable PDF version</a> | <a href="./resume.php?output=text">Plain Text (.txt) version</a> | </span>
610 <?php
613 <span id="valid">Validate <a href="http://validator.w3.org/check/referer">XHTML 1.1</a> / <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS 2.0</a></span>
614 </p>
616 </body>
617 </html>
618 <?php
619 break;
620 case "text":
621 header("Content-type: text/plain");
622 print($bio['name']."\n\n");
623 if ($prefs['show_phone'] == 1) {
624 print(str_pad($bio['phone'], 50, ' '));
626 if ($prefs['show_address'] == 1) {
627 print(str_pad($bio['address'], 50, ' ', STR_PAD_LEFT)."\n");
629 if ($prefs['show_email'] == 1) {
630 print(str_pad($bio['email'], 50, ' '));
632 if ($prefs['show_address'] == 1) {
633 print(str_pad($bio['city'].', '.$bio['state'].' '.$bio['zip'], 50, ' ', STR_PAD_LEFT));
635 print("\n\n");
636 print('OBJECTIVE'."\n".str_pad('', 100, '-')."\n");
637 print(pad_and_wrap($data['objective'])."\n\n\n");
638 print('EXPERIENCE'."\n".str_pad('', 100, '-')."\n");
639 foreach ($data['jobs'] as $job) {
640 if ($job['show'] == 1) {
641 print(str_pad($job['period'], 20, ' '));
642 print(str_pad($job['employer'], 55, ' '));
643 print(str_pad($job['location'], 25, ' ', STR_PAD_LEFT)."\n");
644 if (!empty($job['employer_info'])) {
645 print(pad_and_wrap($job['employer_info'])."\n");
647 foreach ($job['positions'] as $title => $position) {
648 print("\n".pad_and_wrap($title)."\n");
649 foreach ($position as $responsibility) {
650 print(pad_and_wrap($responsibility, 20, ' ', 80, '- ')."\n");
654 print("\n");
656 print("\n".'SKILLS, TECHNOLOGIES & PROJECTS'."\n".str_pad('', 100, '-')."\n");
657 foreach ($data['skills_technologies_projects'] as $temp) {
658 print(pad_and_wrap($temp, 20, ' ', 80, '- ')."\n");
660 print("\n\n".'EDUCATION & INTERESTS'."\n".str_pad('', 100, '-')."\n");
661 foreach ($data['education_interests'] as $temp) {
662 print(pad_and_wrap($temp, 20, ' ', 80, '- ')."\n");
664 print("\n\n".'LinkedIn Profile: http://www.linkedin.com/pub/2/a/731 - Direct references available upon request.'."\n\n");
665 break;