CINXE.COM
My Curriculum Vitaé -- Charlie Harvey
<!DOCTYPE html> <html lang="en-GB"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <!-- ; RIP Seymour Papert pc 2 pd repeat 180[fd 1 rt 2] --> <meta name="description" content="Charlie Harvey’s CV or resumé as they say in the US." /> <meta name="keywords" content="charlie harvey, charlie, harvey, perl, html, punk, punk rock, cider, ciderpunx, direct action, boozeulator, daily mail generator, code, floss, gnu/linux, hacker, geekery" /> <meta name="news_keywords" content="charlie harvey, ciderpunx" /> <meta name="author" content="Charlie Harvey" /> <meta name="generator" content="Dancer 1.3500: Minimalist perl web framework. Vim: text editor." /> <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Libre+Baskerville:400,400italic,700%7CCabin:400,700%7CInconsolata:400" type="text/css" /> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css" media="screen"/> <link rel="stylesheet" href="//static.charlieharvey.org.uk/css/style.css" media="screen" /> <link rel="alternate" type="application/rss+xml" title="RSS: Blog Posts" href="/page/feed/rss" /> <link rel="alternate" type="application/rss+xml" title="RSS: Comments" href="/comment/feed/rss" /> <link rel="alternate" type="application/rss+xml" title="RSS: Files" href="/file/feed/rss" /> <link rel="alternate" type="application/rss+xml" title="RSS: Flickr images" href="http://flickr.com/services/feeds/photos_public.gne?id=8361414@N05&lang=en-us&format=rss_200"> <link rel="license copyright" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" /> <link rel="shortcut icon" href="//static.charlieharvey.org.uk/favicon.ico" /> <link rel="canonical" href="/cv " /> <!-- TODO: These shouldn't show for example on the rss aggregator page--> <meta property="og:title" content="My Curriculum Vitaé" /> <meta property="og:locale" content="en_GB" /> <meta property="og:type" content="article" /> <meta property="og:url" content="/cv" /> <meta property="og:site_name" content="charlieharvey.org.uk" /> <meta property="og:description" content="Charlie Harvey’s CV or resumé as they say in the US." /> <meta property="twitter:card" content="summary_large_image" /> <meta property="twitter:title" content="My Curriculum Vitaé" /> <meta property="twitter:domain" content="charlieharvey.org.uk" /> <meta property="twitter:description" content="Charlie Harvey’s CV or resumé as they say in the US." /> <meta property="twitter:creator" content="@ciderpunx" /> <meta property="twitter:site" content="@ciderpunx" /> <meta property="dc.title" content="My Curriculum Vitaé" /> <meta property="dc.creator" content="Charlie Harvey" /> <meta property="dc.subject" content="My Curriculum Vitaé" /> <meta property="dc.description" content="Charlie Harvey’s CV or resumé as they say in the US." /> <meta property="dc.publisher" content="charlieharvey.org.uk" /> <meta property="dc.contributor" content="Charlie Harvey" /> <meta property="dc.language" content="en-GB" /> <!--[if lt IE 9]><script src="//static.charlieharvey.org.uk/js/vendor/respond.min.js"></script><script src="//static.charlieharvey.org.uk/js/vendor/html5shiv-printshiv.js"></script><script src="//cdn.jsdelivr.net/jquery/1.10.2/jquery-1.10.2.min.js"></script><![endif]--> <!--[if gte IE 9]><!--><script src="//static.charlieharvey.org.uk/js/zepto.min.js"></script><!--<![endif]--> <title>My Curriculum Vitaé -- Charlie Harvey</title> </head> <body> <!--t:header--> <p class="hidden"><a id="top" href="#content">Skip navigation</a></p> <header class="titlebar"> <h1><a rel="me home" class="fn url no_under" href="/">Charlie Harvey</a></h1> </header> <nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">Menu</button> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li ><a class="tag me" href="/" >Home</a></li> <li class="dropdown "> <a class="dropdown-toggle" href="#" data-toggle="dropdown">Blog<strong class="caret"></strong></a> <ul class="dropdown-menu" role="menu"> <li><a class="nav tag me" href="/page/index" accesskey="B">Blog home</a></li> <li class="divider"></li> <li><a class="nav tag me" href="/page/geekery">Geekery</a></li> <li><a class="nav tag me" href="/page/cider">Cider reviews</a></li> <li><a class="nav tag me" href="/page/projects">Projects</a></li> <li><a class="nav tag me" href="/page/activism">Activism</a></li> <li><a class="nav tag me" href="/page/reading_lists">Reading</a></li> <li><a class="nav tag me" href="/page/design">Design & photography</a></li> <li><a class="nav tag me" href="/page/musings_rants_oped">Musings</a></li> <li><a class="nav tag me" href="/page/vegan_recipes">Vegan recipes</a></li> <li><a class="nav tag me" href="/page/fun_and_games">Fun and games</a></li> </ul> </li> <li ><a class="nav tag me" href="/file/archive/1" accesskey="W">Files</a></li> <li ><a class="nav tag me" href="/flick/list/1" accesskey="I">Images</a></li> <li class="dropdown active"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">About<strong class="caret"></strong></a> <ul class="dropdown-menu" role="menu"> <li><a class="nav tag" href="/about" accesskey="?">About</a></li> <li><a class="nav tag me" href="/cv.pl" accesskey="R">CV</a></li> <li><a class="nav tag" href="/popular/week">Popular this week</a></li> <li><a class="nav tag" href="/about/feeds">RSS and Atom feeds</a></li> <li><a class="nav tag" href="/about/api">Content API</a></li> <li><a class="nav tag" href="/page/privacy">Privacy statement</a></li> <li><a class="nav tag me" href="/contact_charlie" accesskey="@">Contact</a></li> </ul> </li> </ul> <div class="searchbox right nav navbar-right pull-right"> <form method="get" id="search" class="navbar-form" role="search" action="/ddg"> <div class="input-group" id="search-input-group"> <label class="search-label hidden" for="st-search-input">Search:</label> <input type="text" name="q" maxlength="255" tabindex="1" placeholder="Search" id="st-search-input" /> <div class="input-group-btn"> <button type="submit" tabindex="2" name="go" value="" id="go" class="btn btn-default"> <span class="glyphicon glyphicon-search"></span> </button> </div> <label for="go" class="hidden">Go</label> </div> </form> </div> </div><!--/.nav-collapse --> </div> </nav> <!--/header--> <div id="page" class="container"> <!--t:cv--> <div class="hidden-md hidden-sm hidden-xs"> <!--t:social_block--> <div class="social-block-div"> <ul class="no-decoration" id="social-block"> <li><a href="https://twitter.com/intent/tweet?via=ciderpunx&related=ciderpunx&url=http://charlieharvey.org.uk/cv&text=I’m%20reading%20My%20Curriculum%20Vitaé%20—%20" class="sprite twitter">Share on Twitter</a></li> <li><a href="http://www.facebook.com/share.php?u=http://charlieharvey.org.uk/cv&t=I’m%20reading%20My%20Curriculum%20Vitaé" class="sprite facebook">Share on Facebook</a></li> <li><a href="https://plus.google.com/share?url=http://charlieharvey.org.uk/cv" class="sprite gplus">Share on Google+</a></li> <li><a href="http://news.ycombinator.com/submitlink?u=http://charlieharvey.org.uk/cv&t=My%20Curriculum%20Vitaé" class="sprite hackernews">Share on Hacker News</a></li> </ul> <a href="javascript:void(0)" id="social-block-toggle" class="visible-lg">↗</a> </div> <!--/social_block--> </div> <article class="entry-content drop-cap"> <header> <h1>My Curriculum Vitaé</h1> </header> <p>Thanks for taking the time to look at my CV. <strong>Please note I am not looking for work at the moment</strong>. Don’t be offended if I don’t reply to unsolicited job offers. <br /></p> <p>If I <em>were</em> looking I would be most interested in job opportunities with organizations working on social and environmental justice issues, overthgrowing global capitalism and/or promoting, using or considering using Free Software. </p> <ul> <li><a href="http://static.charlieharvey.org.uk/html_static/cv/charlie_harvey_cv.html">Online XHTML Version</a></li> <li><a href="http://static.charlieharvey.org.uk/html_static/cv/charlie_harvey_cv_uk_a4.pdf">A4 PDF</a></li> <li><a href="http://static.charlieharvey.org.uk/html_static/cv/charlie_harvey_cv_us_letter.pdf">US Letter PDF</a></li> <li><a href="http://static.charlieharvey.org.uk/html_static/cv/charlie_harvey_cv.txt">Plain Text</a></li> <li><a href="http://static.charlieharvey.org.uk/html_static/cv/charlie_harvey_cv.sxw">OpenOffice 1 (.sxw)</a></li> <li><a href="http://static.charlieharvey.org.uk/html_static/cv/charlie.xml">Raw XML</a> (in <a href="http://xmlresume.sourceforge.net/">XML Resume Library Format)</a></li> </ul> <p> I use a perl script I wrote, called xmlcv.pl to keep all versions of my CV ’in sync’. This in turn uses the CPAN module <a href="http://search.cpan.org/~phish/XML-LibXML/">XML::LibXML</a> and <a href="http://xmlresume.sourceforge.net/">XML Resume Library</a>. </p> <p> I write my CV as a single XML file, the script then uses XSLT to ’mung’ it into the various formats available. If you look at the <a href="/cv/charlie.xml">XML version</a> of my CV, you’ll see that it’s still work in progress. The version you are seeing is the (mercifully, perhaps!) brief one. </p> <p> If you are interested in xmlcv.pl works, please feel free to <a href="/src/xmlcv.tar.gz">download it together with my ’tweaked’ version of the XML Resume Library [gzipped tar]</a>. I’d be interested to <a href="/cgi-bin/contact.pl">hear from anyone</a> who finds it useful. </p> <p> <strong>Update: </strong>As of 2011, <a href="http://mindosoft.github.com/">Sergios Stamatis</a> is using xmlcv.pl. He has <a href="https://github.com/MINDoSOFT/mindosoft.github.com/commit/a490e6a5c2a8f43182ef92012d10c7060a2e0554#diff-3">written a bash script</a> to use xmlcv.pl to update his CV over on git hub. </p> </article> <!--/cv--> </div> <!--t:footer--> <footer id="footer" class="footer"> <div id="footwrap" class="container"> <ul class="row"> <li class="col-sm-3"> <section> <h3>Onsite links</h3> <!--t:onsite_link_ul--> <ul class="xoxo"> <li><a href="/daily_mail.pl">Daily Mail story generator</a></li> <li><a href="/newsfeed">Newsfeeds</a></li> <li><a href="/page/space_invaders">Space Invaders</a></li> <li><a href="/mills_boon.pl">Statistically probable Mills and Boon stories</a></li> <li><a href="/html_static/real_ultimate_perlgeeks.html">Real Ultimate Perl Geeks</a></li> <li><a href="/rot13">ROT13 Tool</a></li> <li><a href="/about/api">Content API</a></li> <li><a href="/contact_charlie">Contact</a></li> </ul> <!--/onsite_link_ul--> </section> </li> <li class="col-sm-3"> <section> <h3>External links</h3> <!--t:external_link_ul--> <ul class="xoxo"> <li><a href="http://charlie.ox4.org" rel="me">Charlie's Drupal Life Aggregator</a></li> <li><a href="http://perlmonks.org/?node_id=373188" rel="me">Perlmonks page</a></li> <li><a href="http://slashdot.org/~ciderpunk" rel="me">Slashdot page</a></li> <li><a href="https://github.com/ciderpunx">Charlie’s repositories on github</a></li> </ul> <!--/external_link_ul--> </section> </li> <li class="col-sm-3"> <section> <h3>Friends</h3> <!--t:friend_site_ul--> <ul class="xoxo"> <li><a href="http://ox4.org/" rel="friend co-worker met">OX4: Webhosting for Oxford Activism</a></li> <li><a href="http://newint.org" rel="friend co-worker met">New Internationalist</a></li> <li><a href="http://hacktivista.net/" rel="friend co-worker met">Hacktionlab</a></li> <li><a href="http://eleanorg.org" rel="friend sweetheart date met muse">Nor’s Page</a></li> <li><a href="http://artfulrobot.com/" rel="friend met">Rich’s page</a></li> <li><a href="http://oxguin.net" rel="friend met">Graham’s page</a></li> <li><a href="http://theoarc.org.uk/" rel="friend co-worker met">Oxford Action Resource Centre</a></li> </ul> <!--/friend_site_ul--> </section> </li> <li class="col-sm-3"> <section> <h3>Follow me</h3> <!--t:social_media_ul--> <ul class="xoxo"> <li><a href="http://twitter.com/ciderpunx" rel="me"><div class="sprite32 twitter pull-left"> </div><div class="pull-left"> @ciderpunx</div></a><div class="clear"></div></li> <li><a href="http://flickr.com/photos/charlie_harvey" rel="me"><div class="sprite32 flickr pull-left"></div><div class="pull-left"> flickr</div></a><div class="clear"></div></li> <li><a href="http://uk.linkedin.com/in/charlieharvey"><div class="sprite32 linkedin pull-left"></div><div class="pull-left"> LinkedIn</div></a><div class="clear"></div></li> <li><a href="http://last.fm/user/ciderpunx" rel="me"><div class="sprite32 lastfm pull-left"></div><div class="pull-left"> last.fm</div></a><div class="clear"></div></li> <li><a href="/page/feed/rss" rel="me"><div class="sprite32 rss pull-left"></div><div class="pull-left"> RSS</div></a><div class="clear"></div></li> </ul> <!--/social_media_ul--> </section> </li> </ul> <p id="copyright" class="centre">© Charlie Harvey 2003-2024. You can use the content under the <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">BY-NC-SA</a>. The code is under the <a href="https://www.gnu.org/licenses/agpl-3.0.html">GNU Affero licence</a> and is on <a href="https://github.com/ciderpunx/charlieharvey.org.uk">Github</a>.</p> </div> </footer> <script src="//static.charlieharvey.org.uk/js/min-new.js"></script> <script>// <![CDATA[ $(document).ready(function() { $('code').each(function(i, e) {hljs.highlightBlock(e)}); }); $( "#social-block-toggle" ).click(function() { $( "#social-block" ).slideToggle( "slow", function() { if ($('#social-block-toggle').html()==$('<div/>').html('↗').html()) { $('#social-block-toggle').html("↙"); } else{ $('#social-block-toggle').html("↗"); } }); }); $( "#sidebar-toggle" ).click(function() { $( "#sidebar" ).slideToggle( "slow", function() { if ($('#sidebar-toggle').html()==$('<div/>').html('↗').html()) { $('#sidebar-toggle').html("↙"); } else{ $('#sidebar-toggle').html("↗"); } }); }); // ]]></script> <script>// <![CDATA[ var _paq = _paq || []; _paq.push(["setCookieDomain", "*.charlieharvey.org.uk"]); _paq.push(["trackPageView"]); _paq.push(["enableLinkTracking"]); (function() { var u=(("https:" == document.location.protocol) ? "https" : "http") + "://piwik.charlieharvey.org.uk/"; _paq.push(["setTrackerUrl", u+"piwik.php"]); _paq.push(["setSiteId", "1"]); var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s); })(); // ]]> </script> <!--/footer--> </body> </html>