From 4b383d90d107636a3c67e52ac492845a12a0e916 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Sat, 11 Oct 2014 02:52:17 -0500 Subject: [PATCH] Begin work on site resdesign. --- 404.html | 34 ++--- _layouts/base.html | 22 ++- _layouts/home.html | 78 ----------- _layouts/post.html | 8 +- index.html | 375 +++++++++++++++++++++++++++----------------------- static/avatar.png | Bin 0 -> 14499 bytes static/background.png | Bin 2742 -> 0 bytes static/date_format.js | 125 ----------------- static/main.css | 258 +++++++++++----------------------- 9 files changed, 313 insertions(+), 587 deletions(-) delete mode 100644 _layouts/home.html create mode 100644 static/avatar.png delete mode 100644 static/background.png delete mode 100644 static/date_format.js diff --git a/404.html b/404.html index c9835ee..1cee7d8 100644 --- a/404.html +++ b/404.html @@ -1,25 +1,9 @@ - - - - - 404 - Earwig - - - -
- -
-
-

The page you're looking for doesn't exist – and I thought I had designed everything so well! *sniff*

-

Did I delete it? Did I redesign my site and move everything around aimlessly? WAS IT ABDUCTED BY ALIENS!? Who knows? Not my web server.

-

Well, you're welcome to look around a bit!

-
-
- -
- - +--- +layout: base +title: 404 +--- + +

¡punoℲ ʇoᴎ :ᔭ0ᔭ

+
+

The page you're looking for doesn't exist. You're welcome to look around a bit and try to find it.

+
diff --git a/_layouts/base.html b/_layouts/base.html index 6c69a52..e84fb48 100644 --- a/_layouts/base.html +++ b/_layouts/base.html @@ -2,17 +2,27 @@ - {{ page.title }} - Ben Kurtovic - - - - + {% if page.title == "Home" %} + Ben Kurtovic + {% else %} + {{ page.title }} - Ben Kurtovic + {% endif %} + + + + +
{{ content }}
diff --git a/_layouts/home.html b/_layouts/home.html deleted file mode 100644 index 7a22877..0000000 --- a/_layouts/home.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: base ---- - - -
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Emailben.kurtovic@gmail.com
kurtovc2@illinois.edu
GitHubearwig
IRCEarwig on irc.freenode.net
Wikipedia[[User:The Earwig]]
Twitter@the_earwig
LinkedInbenkurtovic
PGP KeyE8DBB515
-

Projects

- {{ content }} -
-
- Earwig -
-

I'm a software developer and Wikipedian currently studying computer science at the University of Illinois at Urbana–Champaign. I'm the guy behind mwparserfromhell and EarwigBot.

-

On this page, you can find my identities on a few other sites, check out the projects I'm working on, and read some of my strange ramblings in blog form.

-

Posts

-
    - {% for post in site.posts %} -
  • {{ post.date | date: "%b %d, %Y" }}: {{ post.title }}
    {{ post.description }} ()
  • - {% endfor %} -
-

Tweets

-
-
- - -
-
- diff --git a/_layouts/post.html b/_layouts/post.html index 46348c3..fbb96cd 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -2,12 +2,10 @@ layout: base --- - +

{{ page.title }}

-
- Date: {{ page.date | date: "%a, %b %d, %Y" }} +
+ Date: {{ page.date | date: "%B %-d, %Y" }}
{{ content }} diff --git a/index.html b/index.html index 3e34a89..0b7be64 100644 --- a/index.html +++ b/index.html @@ -1,175 +1,208 @@ --- -layout: home +layout: base title: Home --- -
-
- mwparserfromhell (Python + C // started May 2012) -
-
- MWParserFromHell is an easy-to-use and outrageously powerful Python parser for MediaWiki wikicode. -
-
-
-
-
- earwigbot (Python // started April 2009) -
-
- EarwigBot is a Python robot that edits Wikipedia and interacts with people over IRC. It has a separate repository for plugins. -
-
-
-
-
- bitshift (Python + SQL + Web // started March 2014) -
-
- Bitshift is a semantic search engine for source code. -
-
-
-
-
- copyvios (Python + Web // started July 2009) -
-
- Copyvios is a copyright violation detector running on Wikimedia Labs. -
-
- - - -
-
-
- goldfish (Java // started Jan 2013) -
-
- GoLdfish is a simple Game of Life implementation in Java. -
-
-
-
-
- starlorn (Java // started May 2013) -
-
- Starlorn is a shoot 'em up game with a sweet upgrade system and randomized levels. -
-
- - - - - - -
-
-
- cellar-strider (Python // started June 2012) -
-
- Cellar-Strider is a pseudo-roguelike game with a YAML-based level system. -
-
-
-
-
- oriadnos (C // started May 2014) -
-
- Oriadnos is a 3D maze exploration game written from scratch using matrix manipulation code, UV texture mapping, z-buffering, and simple lighting. -
-
-
-
-
- terminvaders (C // started Oct 2013) -
-
- Terminvaders is a terminal-based multiplayer arcade game inspired by Space Invaders. -
-
-
-
-
- databanks (C // started Nov 2013) -
-
- DataBanks is a simple database with a terminal-based interface for notekeeping. -
-
-
-
-
- omnithinker (Python + Web // started Nov 2013) -
-
- OmniThinker is an online brainstorming tool that displays relevant information from the web in a sidebar. -
-
-
-
-
- BAJA (Python + Web // started Jan 2014) -
-
- BAJA is a hacking game featuring multiple simulated websites, tied together by messages sent to the player from a mysterious individual using a fake email client. -
-
- - - - - - - - - -
-
-
- earwig.github.io (Web // started June 2011) -
-
- earwig.github.io is the site you're viewing right now in source code form. -
-
-
-
-
- git-repo-updater (Python // started June 2011) -
-
- Gitup is a console script that allows you to easily pull to multiple git repositories at once. -
-
-
-
-
- music-quizzer (Python // started May 2011) -
-
- MusicQuizzer is a Tk-based program that can help you prepare for your music final with randomly-generated listening quizzes. -
-
-
-
-
- lobo (NetLogo // started Dec 2011) -
-
- Lobo is Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo. -
-
-
-
-
- func-smash (Python // started April 2012) -
-
- FuncSmash, a small for-the-hell-of-it project, tries to generate random Python functions using Markov chains. -
-
+ + + + + +
+

I'm a software developer and Wikipedian currently studying computer science at the University of Illinois at Urbana–Champaign. My work mostly focuses on text parsing and analysis; I'm also interested in programming language theory and algorithm design.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Emailben.kurtovic@gmail.com
kurtovc2@illinois.edu
GitHubearwig
IRCEarwig on irc.freenode.net
Wikipedia[[User:The Earwig]]
Twitter@the_earwig
LinkedInbenkurtovic
PGP KeyE8DBB515
+
+ + + + + +
+

Projects

+
+
+ mwparserfromhell (Python + C // started May 2012) +
+
+ MWParserFromHell is an easy-to-use and outrageously powerful Python parser for MediaWiki wikicode. +
+
+
+
+ earwigbot (Python // started April 2009) +
+
+ EarwigBot is a Python robot that edits Wikipedia and interacts with people over IRC. It has a separate repository for plugins. +
+
+
+
+ bitshift (Python + SQL + Web // started March 2014) +
+
+ Bitshift is a semantic search engine for source code. +
+
+
+
+ copyvios (Python + Web // started July 2009) +
+
+ Copyvios is a copyright violation detector running on Wikimedia Labs. +
+
+

Other projects

+
+
+ goldfish (Java // started Jan 2013) +
+
+ GoLdfish is a simple Game of Life implementation in Java. +
+
+
+
+ starlorn (Java // started May 2013) +
+
+ Starlorn is a shoot 'em up game with a sweet upgrade system and randomized levels. +
+
+
+
+ cellar-strider (Python // started June 2012) +
+
+ Cellar-Strider is a pseudo-roguelike game with a YAML-based level system. +
+
+
+
+ oriadnos (C // started May 2014) +
+
+ Oriadnos is a 3D maze exploration game written from scratch using matrix manipulation code, UV texture mapping, z-buffering, and simple lighting. +
+
+
+
+ terminvaders (C // started Oct 2013) +
+
+ Terminvaders is a terminal-based multiplayer arcade game inspired by Space Invaders. +
+
+
+
+ databanks (C // started Nov 2013) +
+
+ DataBanks is a simple database with a terminal-based interface for notekeeping. +
+
+
+
+ omnithinker (Python + Web // started Nov 2013) +
+
+ OmniThinker is an online brainstorming tool that displays relevant information from the web in a sidebar. +
+
+
+
+ BAJA (Python + Web // started Jan 2014) +
+
+ BAJA is a hacking game featuring multiple simulated websites, tied together by messages sent to the player from a mysterious individual using a fake email client. +
+
+
+
+ earwig.github.io (Web // started June 2011) +
+
+ earwig.github.io is the site you're viewing right now in source code form. +
+
+
+
+ git-repo-updater (Python // started June 2011) +
+
+ Gitup is a console script that allows you to easily pull to multiple git repositories at once. +
+
+
+
+ music-quizzer (Python // started May 2011) +
+
+ MusicQuizzer is a Tk-based program that can help you prepare for your music final with randomly-generated listening quizzes. +
+
+
+
+ lobo (NetLogo // started Dec 2011) +
+
+ Lobo is Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo. +
+
+
+
+ func-smash (Python // started April 2012) +
+
+ FuncSmash, a small for-the-hell-of-it project, tries to generate random Python functions using Markov chains. +
+
+
+

Posts

+
    + {% for post in site.posts %} +
  • {{ post.date | date: "%b %-d, %Y" }}: {{ post.title }}
    {{ post.description }}
  • + {% endfor %} +
+
+ diff --git a/static/avatar.png b/static/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..c55e40573041f1c01c280dca515f8f7082f173d6 GIT binary patch literal 14499 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 literal 0 HcmV?d00001 diff --git a/static/background.png b/static/background.png deleted file mode 100644 index 3d549f610865c69f15850b92d4e524e398e1a050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2742 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 diff --git a/static/date_format.js b/static/date_format.js deleted file mode 100644 index 466f649..0000000 --- a/static/date_format.js +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Date Format 1.2.3 - * (c) 2007-2009 Steven Levithan - * MIT license - * - * Includes enhancements by Scott Trenda - * and Kris Kowal - * - * Accepts a date, a mask, or a date and a mask. - * Returns a formatted version of the given date. - * The date defaults to the current date/time. - * The mask defaults to dateFormat.masks.default. - */ - -var dateFormat = function () { - var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, - timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, - timezoneClip = /[^-+\dA-Z]/g, - pad = function (val, len) { - val = String(val); - len = len || 2; - while (val.length < len) val = "0" + val; - return val; - }; - - // Regexes and supporting functions are cached through closure - return function (date, mask, utc) { - var dF = dateFormat; - - // You can't provide utc if you skip other args (use the "UTC:" mask prefix) - if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) { - mask = date; - date = undefined; - } - - // Passing date through Date applies Date.parse, if necessary - date = date ? new Date(date) : new Date; - if (isNaN(date)) throw SyntaxError("invalid date"); - - mask = String(dF.masks[mask] || mask || dF.masks["default"]); - - // Allow setting the utc argument via the mask - if (mask.slice(0, 4) == "UTC:") { - mask = mask.slice(4); - utc = true; - } - - var _ = utc ? "getUTC" : "get", - d = date[_ + "Date"](), - D = date[_ + "Day"](), - m = date[_ + "Month"](), - y = date[_ + "FullYear"](), - H = date[_ + "Hours"](), - M = date[_ + "Minutes"](), - s = date[_ + "Seconds"](), - L = date[_ + "Milliseconds"](), - o = utc ? 0 : date.getTimezoneOffset(), - flags = { - d: d, - dd: pad(d), - ddd: dF.i18n.dayNames[D], - dddd: dF.i18n.dayNames[D + 7], - m: m + 1, - mm: pad(m + 1), - mmm: dF.i18n.monthNames[m], - mmmm: dF.i18n.monthNames[m + 12], - yy: String(y).slice(2), - yyyy: y, - h: H % 12 || 12, - hh: pad(H % 12 || 12), - H: H, - HH: pad(H), - M: M, - MM: pad(M), - s: s, - ss: pad(s), - l: pad(L, 3), - L: pad(L > 99 ? Math.round(L / 10) : L), - t: H < 12 ? "a" : "p", - tt: H < 12 ? "am" : "pm", - T: H < 12 ? "A" : "P", - TT: H < 12 ? "AM" : "PM", - Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), - o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), - S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] - }; - - return mask.replace(token, function ($0) { - return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); - }); - }; -}(); - -// Some common format strings -dateFormat.masks = { - "default": "ddd mmm dd yyyy HH:MM:ss", - shortDate: "m/d/yy", - mediumDate: "mmm d, yyyy", - longDate: "mmmm d, yyyy", - fullDate: "dddd, mmmm d, yyyy", - shortTime: "h:MM TT", - mediumTime: "h:MM:ss TT", - longTime: "h:MM:ss TT Z", - isoDate: "yyyy-mm-dd", - isoTime: "HH:MM:ss", - isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", - isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" -}; - -// Internationalization strings -dateFormat.i18n = { - dayNames: [ - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", - "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", - "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - ] -}; - -// For convenience... -Date.prototype.format = function (mask, utc) { - return dateFormat(this, mask, utc); -}; diff --git a/static/main.css b/static/main.css index 6d427ec..e544870 100644 --- a/static/main.css +++ b/static/main.css @@ -1,236 +1,140 @@ body { - max-width: 1000px; - margin: auto; - padding: 0 40px 0 40px; - font-family: helvetica, arial, clean, sans-serif; + margin: 0; + background-color: white; + color: black; + font-family: sans-serif; /* TODO */ font-size: 16px; - color: #000; - background: #E0E0E0 url("/static/background.png") repeat top left; -} - -p { - line-height: 1.25em; } -.color-highlight { - color: #040; -} +a:link { color: #3d7751; text-decoration: none; } +a:visited { color: #3d7751; text-decoration: none; } +a:hover { color: #041; text-decoration: underline; } +a:active { color: #403; text-decoration: underline; } -.highlight, .highlighttable { - background: #f2f2f2; - border: 1px solid #e8e8e8; - border-radius: 10px; - padding-left: 16px; - line-height: 1.35em; - font-size: 14px; -} - -.highlighttable { - width: 100%; -} - -.highlighttable .highlight { - border: 0; -} +a.underlined:link, a.underlined:visited { text-decoration: underline; } +a.underlined:hover, a.underlined:active { text-decoration: none; } -.linenos { - color: #888; -} - -.description { - font-size: 14px; -} - -.index-header { - padding-top: 15px; +#banner { + background-color: black; text-align: center; } -pre { - white-space: pre-wrap; +#banner a { + color: white; + text-decoration: none; } -code { - background: #f2f2f2; - border: 1px solid #e8e8e8; - padding: 0 3px; +#banner img { + display: inline; + padding: 2px 0.5em 0 0; + vertical-align: top; } -pre code { - border: 0; - padding: 0; +#banner h1 { + display: inline; + font-family: sans-serif; /* TODO */ + text-align: center; } -div.project { - border: 1px solid #DDD; - border-radius: 5px; +.banner-large { + height: 94px; + line-height: 94px; + border-top: 6px solid #3d7751; } -div.project-head { - padding: 6px 15px 6px 15px; - border-bottom: 1px solid #DDD; - border-radius: 5px 5px 0px 0px; - - /* all I want is a simple background gradient without images! */ - background: #E0E0E0; /* fallback (your browser is crap) */ - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#E3E3E3), to(#CACACA)); /* Chrome, Safari 4+ */ - background: -webkit-linear-gradient(top, #E3E3E3, #CACACA); /* Chrome 10+, Safari 5+ */ - background: -moz-linear-gradient(top, #E3E3E3, #CACACA); /* Firefox 3.6+ */ - background: -ms-linear-gradient(top, #E3E3E3, #CACACA); /* IE 10+ (lol) */ - background: -o-linear-gradient(top, #E3E3E3, #CACACA); /* Opera 11.10+ */ - background: linear-gradient(top, #E3E3E3, #CACACA); /* God-tier */ +.banner-large img { + height: 92px; } -div.project-body { - padding: 6px 15px 9px 15px; - border-radius: 0px 0px 5px 5px; - - background: #F4F4F4; - background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F9F9F9), to(#EFEFEF)); - background: -webkit-linear-gradient(top, #F9F9F9, #EFEFEF); - background: -moz-linear-gradient(top, #F9F9F9, #EFEFEF); - background: -ms-linear-gradient(top, #F9F9F9, #EFEFEF); - background: -o-linear-gradient(top, #F9F9F9, #EFEFEF); - background: linear-gradient(top, #F9F9F9, #EFEFEF); */ +.banner-large h1 { + font-size: 2.5em; } -div.divider { - border-bottom: 1px solid #CCC; - margin-top: 15px; - margin-bottom: 15px; +.banner-small { + height: 66px; + line-height: 66px; + border-top: 4px solid #3d7751; } -td.about-l { - padding: 4px 12px 4px 12px; - border-left: 1px solid #CCC; +.banner-small img { + height: 64px; } -td.about-r { - padding: 4px 12px 4px 12px; - border-right: 1px solid #CCC; +.banner-small h1 { + font-size: 2em; } -li.post { - margin-bottom: 20px; +#container { + margin: 1.5em auto 0; + max-width: 1000px; + padding: 0 40px 0 40px; } -td.light-l { background-color: #ECECEC; } -td.dark-l { background-color: #DADADA; } -td.light-r { background-color: #F7F7F7; } -td.dark-r { background-color: #E5E5E5; } - -p#about-me-top { - margin-top: 0px; +#container p { + line-height: 1.25em; } -h1#head { - margin-top: 0px; - padding-top: 0px; - margin-bottom: 0px; - padding-bottom: 0px; - text-align: center; +#content p, #content ol, #content li { + line-height: 1.75em; } -div#container { - margin: 30px auto 30px auto; - border: 1px solid #999; - border-radius: 10px; - background-color: #FFF; +.project { + margin-bottom: 1.25em; } -div#header { - margin: 30px; - padding: 35px 0px 35px 0px; - border: 1px solid #999; - border-radius: 10px 10px 0px 0px; - - /* see div.project-head for details */ - background: #DDEEDD; - background: -webkit-gradient(linear, left top, left bottom, from(#E4F1E4), to(#B1BEB1)); - background: -webkit-linear-gradient(top, #E4F1E4, #B1BEB1); - background: -moz-linear-gradient(top, #E4F1E4, #B1BEB1); - background: -ms-linear-gradient(top, #E4F1E4, #B1BEB1); - background: -o-linear-gradient(top, #E4F1E4, #B1BEB1); - background: linear-gradient(top, #E4F1E4, #B1BEB1); +.project div:nth-child(2) { + font-size: 14px; } -div#content { - padding: 0 30px; +#post-list li { + margin-bottom: 1.25em; } -div#footer { +.subtitle { font-size: 14px; - text-align: center; - padding: 9px 4px 12px 4px; - color: #222; -} - -div#post-info { - margin-left: 24px; } -div#post p, div#post ol, div#post li { - line-height: 1.75em; +#post-info span { + color: #777; } -div#avatar-box { - float: right; - position: relative; - left: 50px; - margin-left: -40px; - padding: 12px; - background-color: #FFF; - border: 1px solid #999; - border-radius: 5px; - - -webkit-transform:rotate(3deg); - -moz-transform:rotate(3deg); - -o-transform:rotate(3deg); - -ms-transform:rotate(3deg); +pre { + white-space: pre-wrap; } -div#follow-button-box { - float: right; +code { + background: #f2f2f2; + border: 1px solid #e8e8e8; + padding: 0 3px; } -ul#post-list { - padding-left: 1em; +pre code { + border: 0; + padding: 0; } -img#avatar { - border-radius: 5px; +.highlight, .highlighttable { + background: #f2f2f2; + border: 1px solid #e8e8e8; + font-size: 14px; + line-height: 1.35em; + padding-left: 16px; } -table#about { +.highlighttable { width: 100%; } -td#left-box { - width: 50%; - vertical-align: top; +.highlighttable .highlight { + border: 0; } -td#right-box { - padding-left: 25px; - vertical-align: top; +.linenos { + color: #888; } -td#about-tl { border-top-left-radius: 5px; border-top: 1px solid #AAA; } -td#about-tr { border-top-right-radius: 5px; border-top: 1px solid #AAA; } -td#about-bl { border-bottom-left-radius: 5px; border-bottom: 1px solid #AAA; } -td#about-br { border-bottom-right-radius: 5px; border-bottom: 1px solid #AAA; } - -a:link { color: #373; text-decoration: none; } -a:visited { color: #373; text-decoration: none; } -a:hover { color: #040; text-decoration: underline; } -a:active { color: #404; text-decoration: underline; } - -a.invert:link { text-decoration: underline; } -a.invert:visited { text-decoration: underline; } -a.invert:hover { text-decoration: none; } -a.invert:active { text-decoration: none; } - -a.incognito:link { color: #000; text-decoration: none; } -a.incognito:visited { color: #000; text-decoration: none; } -a.incognito:hover { color: #000; text-decoration: underline; } -a.incognito:active { color: #000; text-decoration: none; } +#footer { + color: #444; + font-size: 85%; + text-align: center; +}