Spaces to tabs

rophako
Noah 2015-08-11 17:18:25 -07:00
parent 380a078800
commit 3516969c88
22 changed files with 2094 additions and 2094 deletions

View File

@ -1,25 +1,25 @@
{# Custom category list for kirsle.net <ul>-based design #} {# Custom category list for kirsle.net <ul>-based design #}
{% for tag in tags %} {% for tag in tags %}
{% if not tag["small"] %} {% if not tag["small"] %}
<li>&#0187; <a href="{{ url_for('blog.category', category=tag['category']) }}">{{ tag['category'] }}</a> <li>&#0187; <a href="{{ url_for('blog.category', category=tag['category']) }}">{{ tag['category'] }}</a>
<small>({{ tag['count'] }})</small></li> <small>({{ tag['count'] }})</small></li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% if has_small %} {% if has_small %}
</ul><!-- end list from layout.html --> </ul><!-- end list from layout.html -->
<div id="blog_show_more" style="display: none"> <div id="blog_show_more" style="display: none">
<ul> <ul>
{% for tag in tags %} {% for tag in tags %}
{% if tag["small"] %} {% if tag["small"] %}
<li>&#0187; <a href="{{ url_for('blog.category', category=tag['category']) }}">{{ tag['category'] }}</a> <li>&#0187; <a href="{{ url_for('blog.category', category=tag['category']) }}">{{ tag['category'] }}</a>
<small>({{ tag['count'] }})</small></li> <small>({{ tag['count'] }})</small></li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
<div id="blog_show_less" style="display: block"> <div id="blog_show_less" style="display: block">
<ul> <ul>
<li>&#0164; <a href="#" onClick="$('#blog_show_less').hide(); $('#blog_show_more').show(1000); return false">Show more...</a></li> <li>&#0164; <a href="#" onClick="$('#blog_show_less').hide(); $('#blog_show_more').show(1000); return false">Show more...</a></li>
</ul> </ul>
</div> </div>
{% endif %} {% endif %}

View File

@ -8,122 +8,122 @@ Here you can find an archive of some past web designs used for my personal
website, in chronological order.<p> website, in chronological order.<p>
<div class="row"> <div class="row">
<div class="col-md-4 center"> <div class="col-md-4 center">
<a href="/designs/lavender" target="_blank"> <a href="/designs/lavender" target="_blank">
<img src="/designs/screenshots/lavender.t.png" alt="Lavender" class="portrait"> <img src="/designs/screenshots/lavender.t.png" alt="Lavender" class="portrait">
</a> </a>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
<a href="/designs/lavender" target="_blank">Cuvou.com Lavender</a><p> <a href="/designs/lavender" target="_blank">Cuvou.com Lavender</a><p>
This was the first web design for Cuvou.com, which was the domain I was This was the first web design for Cuvou.com, which was the domain I was
using for my personal website somewhere around the year 2006. using for my personal website somewhere around the year 2006.
</div> </div>
</div> </div>
<br> <br>
<div class="row"> <div class="row">
<div class="col-md-4 center"> <div class="col-md-4 center">
<a href="/designs/starburst" target="_blank"> <a href="/designs/starburst" target="_blank">
<img src="/designs/screenshots/starburst.t.png" alt="Starburst" class="portrait"> <img src="/designs/screenshots/starburst.t.png" alt="Starburst" class="portrait">
</a> </a>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
<a href="/designs/starburst" target="_blank">Cuvou.com Starburst</a><p> <a href="/designs/starburst" target="_blank">Cuvou.com Starburst</a><p>
This was the second redesign for Cuvou.com. It featured lighter shades This was the second redesign for Cuvou.com. It featured lighter shades
of blue to improve the readability of the pages. I named it Starburst of blue to improve the readability of the pages. I named it Starburst
both for the visual look of the theme, and because it was the name of both for the visual look of the theme, and because it was the name of
the Perl CMS I was programming to run Cuvou.com. the Perl CMS I was programming to run Cuvou.com.
</div> </div>
</div> </div>
<br> <br>
<div class="row"> <div class="row">
<div class="col-md-4 center"> <div class="col-md-4 center">
<a href="/designs/storm" target="_blank"> <a href="/designs/storm" target="_blank">
<img src="/designs/screenshots/storm.t.png" alt="Storm" class="portrait"> <img src="/designs/screenshots/storm.t.png" alt="Storm" class="portrait">
</a> </a>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
<a href="/designs/storm" target="_blank">Cuvou.com Storm</a><p> <a href="/designs/storm" target="_blank">Cuvou.com Storm</a><p>
This was the third design. I didn't end up liking it very much and This was the third design. I didn't end up liking it very much and
quickly replaced it. quickly replaced it.
</div> </div>
</div> </div>
<br> <br>
<div class="row"> <div class="row">
<div class="col-md-4 center"> <div class="col-md-4 center">
<a href="/designs/cosmos" target="_blank"> <a href="/designs/cosmos" target="_blank">
<img src="/designs/screenshots/cosmos.t.png" alt="Cosmos" class="portrait"> <img src="/designs/screenshots/cosmos.t.png" alt="Cosmos" class="portrait">
</a> </a>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
<a href="/designs/cosmos" target="_blank">Cuvou.com Cosmos</a><p> <a href="/designs/cosmos" target="_blank">Cuvou.com Cosmos</a><p>
This was the final redesign for Cuvou.com and features an outer space This was the final redesign for Cuvou.com and features an outer space
style theme, while still keeping the blue and pink color scheme. style theme, while still keeping the blue and pink color scheme.
</div> </div>
</div> </div>
<br> <br>
<div class="row"> <div class="row">
<div class="col-md-4 center"> <div class="col-md-4 center">
<a href="/designs/solar" target="_blank"> <a href="/designs/solar" target="_blank">
<img src="/designs/screenshots/solar.t.png" alt="Solar" class="portrait"> <img src="/designs/screenshots/solar.t.png" alt="Solar" class="portrait">
</a> </a>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
<a href="/designs/solar" target="_blank">Kirsle.net Solar</a><p> <a href="/designs/solar" target="_blank">Kirsle.net Solar</a><p>
This was the original "Solar" theme for Kirsle.net, which was the next This was the original "Solar" theme for Kirsle.net, which was the next
logical upgrade from the Cosmos theme. This first iteration used static, logical upgrade from the Cosmos theme. This first iteration used static,
flat images for every part of the design: though the design looks like flat images for every part of the design: though the design looks like
it has transparent backgrounds, they were actually pre-rendered, because it has transparent backgrounds, they were actually pre-rendered, because
I wanted to support Internet Explorer 6 and it couldn't handle alpha I wanted to support Internet Explorer 6 and it couldn't handle alpha
channels in PNG images.<p> channels in PNG images.<p>
I actually lost my copy of this template and had to dig it up on I actually lost my copy of this template and had to dig it up on
<a href="http://www.archive.org/">The Internet Archive</a> and piece it <a href="http://www.archive.org/">The Internet Archive</a> and piece it
back together. back together.
</div> </div>
</div> </div>
<br> <br>
<div class="row"> <div class="row">
<div class="col-md-4 center"> <div class="col-md-4 center">
<a href="/designs/solar-html5" target="_blank"> <a href="/designs/solar-html5" target="_blank">
<img src="/designs/screenshots/solar-html5.t.png" alt="Solar HTML5" class="portrait"> <img src="/designs/screenshots/solar-html5.t.png" alt="Solar HTML5" class="portrait">
</a> </a>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
<a href="/designs/solar-html5" target="_blank">Kirsle.net Solar (HTML5)</a><p> <a href="/designs/solar-html5" target="_blank">Kirsle.net Solar (HTML5)</a><p>
An HTML5/CSS3 refresh of the Kirsle.net Solar theme. I started using An HTML5/CSS3 refresh of the Kirsle.net Solar theme. I started using
CSS3 for the rounded panel borders and transparent PNGs for the panel CSS3 for the rounded panel borders and transparent PNGs for the panel
background colors, breaking compatibility with MSIE 6.0.<p> background colors, breaking compatibility with MSIE 6.0.<p>
This design went live on Kirsle.net on May 12, 2010. This design went live on Kirsle.net on May 12, 2010.
<a href="/blog/entry/design-refresh">Relevant blog post</a>. <a href="/blog/entry/design-refresh">Relevant blog post</a>.
</div> </div>
</div> </div>
<br> <br>
<div class="row"> <div class="row">
<div class="col-md-4 center"> <div class="col-md-4 center">
<a href="/designs/solar-bootstrap" target="_blank"> <a href="/designs/solar-bootstrap" target="_blank">
<img src="/designs/screenshots/solar-bootstrap.t.png" alt="Solar Bootstrap" class="portrait"> <img src="/designs/screenshots/solar-bootstrap.t.png" alt="Solar Bootstrap" class="portrait">
</a> </a>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
<a href="/designs/solar-bootstrap" target="_blank">Kirsle.net Solar (Bootstrap)</a><p> <a href="/designs/solar-bootstrap" target="_blank">Kirsle.net Solar (Bootstrap)</a><p>
Another design refresh that uses Twitter Bootstrap as the layout engine, Another design refresh that uses Twitter Bootstrap as the layout engine,
improving compatibility with mobile browsers. This design went live on improving compatibility with mobile browsers. This design went live on
October 15, 2014. October 15, 2014.
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -112,7 +112,7 @@
<pre>And <pre>And
preformatted preformatted
text!</pre> text!</pre>
</div> </div>
<p>&nbsp; <p>&nbsp;
@ -128,12 +128,12 @@ Use content only with permission.
########################################################## ##########################################################
# Hyperlink Editor Script || Copyright 2007 Casey Kirsle # # Hyperlink Editor Script || Copyright 2007 Casey Kirsle #
#--------------------------------------------------------# #--------------------------------------------------------#
# This script makes all offsite links open in a new # # This script makes all offsite links open in a new #
# window, and turns all e-mail links in the format of # # window, and turns all e-mail links in the format of #
# "name-at-domain.com" into "name\@domain.com" # # "name-at-domain.com" into "name\@domain.com" #
#--------------------------------------------------------# #--------------------------------------------------------#
# Use content only with permission. Get permission from # # Use content only with permission. Get permission from #
# casey "at" cuvou.org # # casey "at" cuvou.org #
########################################################## ##########################################################
*/ */
// var localAddr = new Array(); // var localAddr = new Array();
@ -146,61 +146,61 @@ Use content only with permission.
// localAddr[6] = "upsilon.cuvou.com"; // localAddr[6] = "upsilon.cuvou.com";
// if (document.getElementsByTagName) { // if (document.getElementsByTagName) {
// var links = document.getElementsByTagName("a"); // var links = document.getElementsByTagName("a");
// for (var i = 0; i < links.length; i++) { // for (var i = 0; i < links.length; i++) {
// var loc = links[i].href; // var loc = links[i].href;
// var parts = loc.split ("/"); // http, null, domain name, request // var parts = loc.split ("/"); // http, null, domain name, request
// var prot = parts[0].split(":"); // var prot = parts[0].split(":");
// var protocol = prot[0]; // var protocol = prot[0];
// protocol.toLowerCase; // protocol.toLowerCase;
// if (protocol == "http" || protocol == "https") { // if (protocol == "http" || protocol == "https") {
// // This is an absolute URL. // // This is an absolute URL.
// var isLocal = 0; // var isLocal = 0;
// for (var j = 0; j < localAddr.length; j++) { // for (var j = 0; j < localAddr.length; j++) {
// if (parts[2] == localAddr[j]) { // if (parts[2] == localAddr[j]) {
// isLocal = 1; // isLocal = 1;
// } // }
// } // }
// if (isLocal == 1) { // if (isLocal == 1) {
// // Local links don't need to be modified. // // Local links don't need to be modified.
// } // }
// else { // else {
// // Remote links need to open in a new window. // // Remote links need to open in a new window.
// links[i].target = "_blank"; // links[i].target = "_blank";
// } // }
// } // }
// else if (protocol == "mailto") { // else if (protocol == "mailto") {
// // MailTo link. See if this isn't a normal link. // // MailTo link. See if this isn't a normal link.
// if (loc.indexOf("-at-") > -1) { // if (loc.indexOf("-at-") > -1) {
// var newhref = loc.split("-at-").join("@"); // var newhref = loc.split("-at-").join("@");
// links[i].href = newhref; // links[i].href = newhref;
// // Convert it in the text too. // // Convert it in the text too.
// if (links[i].innerHTML.indexOf("-at-") > -1) { // if (links[i].innerHTML.indexOf("-at-") > -1) {
// var mailLabel = links[i].innerHTML.split("-at-"); // var mailLabel = links[i].innerHTML.split("-at-");
// var newLabel = mailLabel.join ("@"); // var newLabel = mailLabel.join ("@");
// links[i].innerHTML = newLabel; // links[i].innerHTML = newLabel;
// } // }
// } // }
// } // }
// else if (protocol == "msnim") { // else if (protocol == "msnim") {
// if (loc.indexOf("-at-") > -1) { // if (loc.indexOf("-at-") > -1) {
// var newhref = loc.split("-at-").join("@"); // var newhref = loc.split("-at-").join("@");
// links[i].href = newhref; // links[i].href = newhref;
// // Convert it in the text too. // // Convert it in the text too.
// if (links[i].innerHTML.indexOf("-at-") > -1) { // if (links[i].innerHTML.indexOf("-at-") > -1) {
// var mailLabel = links[i].innerHTML.split("-at-"); // var mailLabel = links[i].innerHTML.split("-at-");
// var newLabel = mailLabel.join ("@"); // var newLabel = mailLabel.join ("@");
// links[i].innerHTML = newLabel; // links[i].innerHTML = newLabel;
// } // }
// } // }
// } // }
// } // }
// } // }
</script> </script>

View File

@ -1,222 +1,222 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Solar Bootstrap - Kirsle.net</title> <title>Solar Bootstrap - Kirsle.net</title>
<!-- Bootstrap --> <!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="/designs/solar-bootstrap/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="/designs/solar-bootstrap/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/designs/solar-bootstrap/bootstrap-theme.min.css"> <link rel="stylesheet" type="text/css" href="/designs/solar-bootstrap/bootstrap-theme.min.css">
<!-- Kirsle.net Solar --> <!-- Kirsle.net Solar -->
<link rel="stylesheet" type="text/css" media="screen" href="/designs/solar-bootstrap/ui.css"> <link rel="stylesheet" type="text/css" media="screen" href="/designs/solar-bootstrap/ui.css">
<link rel="stylesheet" type="text/css" media="print" href="/designs/solar-bootstrap/print.css"> <link rel="stylesheet" type="text/css" media="print" href="/designs/solar-bootstrap/print.css">
<link rel="stylesheet" type="text/css" href="/designs/solar-bootstrap/monokai.css"> <link rel="stylesheet" type="text/css" href="/designs/solar-bootstrap/monokai.css">
<link rel="stylesheet" type="text/css" href="/designs/solar-bootstrap/vim-syntax.css"> <link rel="stylesheet" type="text/css" href="/designs/solar-bootstrap/vim-syntax.css">
<link rel="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog/rss"> <link rel="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog/rss">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--> <![endif]-->
</head> </head>
<body> <body>
<div class="mobile-nav"> <div class="mobile-nav">
<a href="#navbar" class="btn btn-primary"><i class="glyphicon glyphicon-list"></i></a> <a href="#navbar" class="btn btn-primary"><i class="glyphicon glyphicon-list"></i></a>
</div> </div>
<div class="k-supernova"></div> <div class="k-supernova"></div>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-md-4 col-md-offset-3"> <div class="col-md-4 col-md-offset-3">
<div class="k-kirsle" onclick="self.location='/'"></div> <div class="k-kirsle" onclick="self.location='/'"></div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-10 col-sm-push-2"> <div class="col-sm-10 col-sm-push-2">
<div class="k-content-panel"> <div class="k-content-panel">
<h1>Kirsle.net Solar (Bootstrap)</h1> <h1>Kirsle.net Solar (Bootstrap)</h1>
This is another design refresh for Kirsle.net Solar that uses Twitter This is another design refresh for Kirsle.net Solar that uses Twitter
Bootstrap as its layout engine, making it work better on mobile. Resize Bootstrap as its layout engine, making it work better on mobile. Resize
the browser window and see how the site reacts.<p> the browser window and see how the site reacts.<p>
This design went live on Kirsle.net on October 15, 2014. It replaced This design went live on Kirsle.net on October 15, 2014. It replaced
the previous version of the <a href="/designs/solar-html5">Solar</a> theme. the previous version of the <a href="/designs/solar-html5">Solar</a> theme.
<h2>Heading Level 2</h2> <h2>Heading Level 2</h2>
Lorem ipsum dolor sit amet, <a href="#">consectetuer adipiscing</a> elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, <a href="#">consectetuer adipiscing</a> elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. <a href="#">Fusce consectetuer</a>, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. <a href="#">Fusce consectetuer</a>, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<pre>Preformatted <pre>Preformatted
T e x t . i</pre> T e x t . i</pre>
<h3>Heading Level 3</h3> <h3>Heading Level 3</h3>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<h4>Heading Level 4</h4> <h4>Heading Level 4</h4>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<div class="k-copyright"> <div class="k-copyright">
Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br> Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br>
Powered by <a href="http://rophako.kirsle.net/" target="_blank">Rophako</a> v0.01 - Powered by <a href="http://rophako.kirsle.net/" target="_blank">Rophako</a> v0.01 -
Hosted by <a href="#">DigitalOcean</a><br> Hosted by <a href="#">DigitalOcean</a><br>
Page generated in 0.001s. Page generated in 0.001s.
</div> </div>
</div> </div>
</div> </div>
<div class="col-sm-2 col-sm-pull-10"> <div class="col-sm-2 col-sm-pull-10">
<div class="k-navpanel"> <div class="k-navpanel">
<a name="navbar"></a> <a name="navbar"></a>
<div class="k-section">Kirsle</div> <div class="k-section">Kirsle</div>
<ul> <ul>
<li>&#0187; <a href="#/">Homepage</a> (<a href="#">RSS</a>)</li> <li>&#0187; <a href="#/">Homepage</a> (<a href="#">RSS</a>)</li>
<li>&#0187; <a href="#/about">About Me</a></li> <li>&#0187; <a href="#/about">About Me</a></li>
<li>&#0187; <a href="#/photos/albums">Photo Albums</a></li> <li>&#0187; <a href="#/photos/albums">Photo Albums</a></li>
<li>&#0187; <a href="#/guestbook">Guestbook</a></li> <li>&#0187; <a href="#/guestbook">Guestbook</a></li>
<li>&#0187; <a href="#/contact">Contact Me</a></li> <li>&#0187; <a href="#/contact">Contact Me</a></li>
</ul> </ul>
<div class="k-section">Channels</div> <div class="k-section">Channels</div>
<ul> <ul>
<li>&#0187; <a href="#">Blog Archives</a></li> <li>&#0187; <a href="#">Blog Archives</a></li>
</ul> </ul>
<div class="k-section">Creativity</div> <div class="k-section">Creativity</div>
<ul> <ul>
<li>&#0187; <a href="#/rendering">3D Renderings</a></li> <li>&#0187; <a href="#/rendering">3D Renderings</a></li>
<li>&#0187; <a href="#/flash">Flash Animation</a></li> <li>&#0187; <a href="#/flash">Flash Animation</a></li>
<li>&#0187; <a href="#/javascript">JavaScript</a></li> <li>&#0187; <a href="#/javascript">JavaScript</a></li>
<li>&#0187; <a href="#/fonts">Fonts</a></li> <li>&#0187; <a href="#/fonts">Fonts</a></li>
<li>&#0187; <a href="#/metacity">Metacity</a></li> <li>&#0187; <a href="#/metacity">Metacity</a></li>
<li>&#0187; <a href="#/doc/">Tutorials</a></li> <li>&#0187; <a href="#/doc/">Tutorials</a></li>
<li>&#0187; <a href="#/designs">Web Design</a></li> <li>&#0187; <a href="#/designs">Web Design</a></li>
</ul> </ul>
<div class="k-section">Software</div> <div class="k-section">Software</div>
<ul> <ul>
<li>&#0187; <a href="#/rivescript">RiveScript</a></li> <li>&#0187; <a href="#/rivescript">RiveScript</a></li>
<li>&#0187; <a href="#/errorgen">Error Generator</a></li> <li>&#0187; <a href="#/errorgen">Error Generator</a></li>
<li>&#0187; <a href="#/tkcalc">Tk Calculator</a></li> <li>&#0187; <a href="#/tkcalc">Tk Calculator</a></li>
<li>&#0187; <a href="#http://sh.kirsle.net/" target="_blank">Terminal Apps</a></li> <li>&#0187; <a href="#http://sh.kirsle.net/" target="_blank">Terminal Apps</a></li>
<li>&#0187; <a href="#/pccc">CyanChat Client</a></li> <li>&#0187; <a href="#/pccc">CyanChat Client</a></li>
</ul> </ul>
<div class="k-section">Web Tools</div> <div class="k-section">Web Tools</div>
<ul> <ul>
<li>&#0187; <a href="#/wizards/ttf2eot.cgi">TTF to EOT</a></li> <li>&#0187; <a href="#/wizards/ttf2eot.cgi">TTF to EOT</a></li>
<li>&#0187; <a href="#/wizards/ps1.html">Base $PS1 Prompt</a></li> <li>&#0187; <a href="#/wizards/ps1.html">Base $PS1 Prompt</a></li>
<li>&#0187; <a href="#/wizards/fader.cgi">Text Fader</a></li> <li>&#0187; <a href="#/wizards/fader.cgi">Text Fader</a></li>
<li>&#0187; <a href="#/wizards/favicon.cgi">Favicons</a></li> <li>&#0187; <a href="#/wizards/favicon.cgi">Favicons</a></li>
<li>&#0187; <a href="#/wizards/distance.cgi">Distance Calc</a></li> <li>&#0187; <a href="#/wizards/distance.cgi">Distance Calc</a></li>
<li>&#0187; <a href="#/wizards/translator.html">Azulian Translater</a></li> <li>&#0187; <a href="#/wizards/translator.html">Azulian Translater</a></li>
<li>&#0187; <a href="#/wizards/xbmask.cgi">XBM Masks</a></li> <li>&#0187; <a href="#/wizards/xbmask.cgi">XBM Masks</a></li>
<li>&#0187; <a href="#/wizards/flask-session.py">Flask Session</a></li> <li>&#0187; <a href="#/wizards/flask-session.py">Flask Session</a></li>
</ul> </ul>
<div class="k-section">Subdomains</div> <div class="k-section">Subdomains</div>
<ul> <ul>
<li>&#0187; <a href="#http://sh.kirsle.net/">Shell Scripts</a></li> <li>&#0187; <a href="#http://sh.kirsle.net/">Shell Scripts</a></li>
<li>&#0187; <a href="#http://rpm.kirsle.net/">Linux RPMs</a></li> <li>&#0187; <a href="#http://rpm.kirsle.net/">Linux RPMs</a></li>
<li>&#0187; <a href="#http://rophako.kirsle.net/">Rophako CMS</a></li> <li>&#0187; <a href="#http://rophako.kirsle.net/">Rophako CMS</a></li>
<li>&#0187; <a href="#http://nano.kirsle.net/">Kirsle::Nano</a></li> <li>&#0187; <a href="#http://nano.kirsle.net/">Kirsle::Nano</a></li>
<li>&#0187; <a href="#http://mc.kirsle.net/">Minecraft Server</a></li> <li>&#0187; <a href="#http://mc.kirsle.net/">Minecraft Server</a></li>
</ul> </ul>
<div class="k-section">Miscellany</div> <div class="k-section">Miscellany</div>
<ul> <ul>
<li>&#0187; <a href="#/firered">Pok&#0233;mon Fuchsia City</a></li> <li>&#0187; <a href="#/firered">Pok&#0233;mon Fuchsia City</a></li>
<li>&#0187; <a href="#/msdos">DOS and Windows</a></li> <li>&#0187; <a href="#/msdos">DOS and Windows</a></li>
<li>&#0187; <a href="#/raspberrypi">Raspberry Pi</a></li> <li>&#0187; <a href="#/raspberrypi">Raspberry Pi</a></li>
</ul> </ul>
<div class="k-section">Links</div> <div class="k-section">Links</div>
<ul> <ul>
<li>&#0187; <a href="#https://www.google.com/+NoahPetherbridge">Google+</a></li> <li>&#0187; <a href="#https://www.google.com/+NoahPetherbridge">Google+</a></li>
<li>&#0187; <a href="#https://twitter.com/kirsle">Twitter</a></li> <li>&#0187; <a href="#https://twitter.com/kirsle">Twitter</a></li>
<li>&#0187; <a href="#https://myspace.com/kirsle">MySpace</a></li> <li>&#0187; <a href="#https://myspace.com/kirsle">MySpace</a></li>
<li>&#0187; <a href="#https://github.com/kirsle">Github</a></li> <li>&#0187; <a href="#https://github.com/kirsle">Github</a></li>
<li>&#0187; <a href="#http://search.cpan.org/~kirsle">CPAN</a></li> <li>&#0187; <a href="#http://search.cpan.org/~kirsle">CPAN</a></li>
<li>&#0187; <a href="#https://www.npmjs.org/~kirsle">npm</a></li> <li>&#0187; <a href="#https://www.npmjs.org/~kirsle">npm</a></li>
</ul> </ul>
<div class="k-section">Fan Club</div> <div class="k-section">Fan Club</div>
<ul> <ul>
<li>&#0187; <a href="#" class="login-link">Log In</a></li> <li>&#0187; <a href="#" class="login-link">Log In</a></li>
</ul> </ul>
<div class="center"> <div class="center">
<a href="https://www.python.org/" target="_blank"> <a href="https://www.python.org/" target="_blank">
<img src="/designs/solar-bootstrap/python.png" width="80" height="15" alt="Python powered"> <img src="/designs/solar-bootstrap/python.png" width="80" height="15" alt="Python powered">
</a><br> </a><br>
<a href="http://validator.w3.org/check?uri=referer"> <a href="http://validator.w3.org/check?uri=referer">
<img src="/designs/solar-bootstrap/html5.png" width="80" height="15" alt="W3C Valid HTML5"> <img src="/designs/solar-bootstrap/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br> </a><br>
<a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.kirsle.com/solar/screen.css"> <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.kirsle.com/solar/screen.css">
<img src="/designs/solar-bootstrap/css3.png" width="80" height="15" alt="W3C Valid CSS3"> <img src="/designs/solar-bootstrap/css3.png" width="80" height="15" alt="W3C Valid CSS3">
</a><p> </a><p>
<a href="#" target="_blank"> <a href="#" target="_blank">
<img src="/designs/solar-bootstrap/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean"> <img src="/designs/solar-bootstrap/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean">
</a> </a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -224,13 +224,13 @@
<script type="text/javascript" src="/designs/solar-bootstrap/offsite.js"></script> <script type="text/javascript" src="/designs/solar-bootstrap/offsite.js"></script>
<script type="text/javascript" src="/designs/solar-bootstrap/bootstrap.min.js"></script> <script type="text/javascript" src="/designs/solar-bootstrap/bootstrap.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$(".login-link").click(function() { $(".login-link").click(function() {
$("#login-link").hide(); $("#login-link").hide();
$("#login-inline").show(500); $("#login-inline").show(500);
return false; return false;
}); });
}); });
</script> </script>
{% block scripts %}{% endblock %} {% block scripts %}{% endblock %}
@ -252,11 +252,11 @@
_paq.push(['trackPageView']); _paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']); _paq.push(['enableLinkTracking']);
(function() { (function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.kirsle.net/piwik/"; var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.kirsle.net/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]); _paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; 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); g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})(); })();
</script> </script>
<noscript><p><img src="http://www.kirsle.net/piwik/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript> <noscript><p><img src="http://www.kirsle.net/piwik/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>

View File

@ -1,192 +1,192 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Solar Theme - Kirsle.net</title> <title>Solar Theme - Kirsle.net</title>
<link rel="stylesheet" type="text/css" media="screen" href="/designs/solar-html5/screen.css"> <link rel="stylesheet" type="text/css" media="screen" href="/designs/solar-html5/screen.css">
<link rel="stylesheet" type="text/css" href="/designs/solar-html5/monokai.css"> <link rel="stylesheet" type="text/css" href="/designs/solar-html5/monokai.css">
<link rel="stylesheet" type="text/css" media="print" href="/designs/solar-html5/print.css"> <link rel="stylesheet" type="text/css" media="print" href="/designs/solar-html5/print.css">
<link rel="stylesheet" type="text/css" media="all" href="/designs/solar-html5/vim-syntax.css"> <link rel="stylesheet" type="text/css" media="all" href="/designs/solar-html5/vim-syntax.css">
<link rel="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog/rss"> <link rel="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog/rss">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head> </head>
<body> <body>
<div class="k-supernova"></div> <div class="k-supernova"></div>
<div class="k-kirsle" onClick="self.location='/'"></div> <div class="k-kirsle" onClick="self.location='/'"></div>
<div class="k-content-panel"> <div class="k-content-panel">
<h1>Kirsle.net Solar (HTML5)</h1> <h1>Kirsle.net Solar (HTML5)</h1>
This was the HTML5 refresh of the Kirsle.net Solar theme, which went live This was the HTML5 refresh of the Kirsle.net Solar theme, which went live
on Kirsle.net on May 12, 2010. It updates the design to use CSS3 rounded on Kirsle.net on May 12, 2010. It updates the design to use CSS3 rounded
borders and alpha transparency PNG images, making the design a lot more borders and alpha transparency PNG images, making the design a lot more
flexible but cutting out support for Internet Explorer 6.0.<p> flexible but cutting out support for Internet Explorer 6.0.<p>
This design was a replacement for the original, This design was a replacement for the original,
<a href="/designs/solar">flat Solar theme</a>, and was itself later upgraded <a href="/designs/solar">flat Solar theme</a>, and was itself later upgraded
to use Bootstrap to <a href="/designs/solar-bootstrap">support mobile to use Bootstrap to <a href="/designs/solar-bootstrap">support mobile
browsers</a>. browsers</a>.
<h2>Heading Level 2</h2> <h2>Heading Level 2</h2>
Lorem ipsum dolor sit amet, <a href="#">consectetuer adipiscing</a> elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, <a href="#">consectetuer adipiscing</a> elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. <a href="#">Fusce consectetuer</a>, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. <a href="#">Fusce consectetuer</a>, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<pre>Preformatted <pre>Preformatted
T e x t . i</pre> T e x t . i</pre>
<h3>Heading Level 3</h3> <h3>Heading Level 3</h3>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<h4>Heading Level 4</h4> <h4>Heading Level 4</h4>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<div class="k-copyright"> <div class="k-copyright">
Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br> Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br>
Powered by <a href="http://rophako.kirsle.net/" target="_blank">Rophako</a> v0.01 - Powered by <a href="http://rophako.kirsle.net/" target="_blank">Rophako</a> v0.01 -
Hosted by <a href="#">DigitalOcean</a><br> Hosted by <a href="#">DigitalOcean</a><br>
Page generated in 0.001s. Page generated in 0.001s.
</div> </div>
</div> </div>
<div class="k-navpanel"> <div class="k-navpanel">
<div class="k-section">Kirsle</div> <div class="k-section">Kirsle</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/">Homepage</a> (<a href="#">RSS</a>)<br> &#0187; <a href="#/">Homepage</a> (<a href="#">RSS</a>)<br>
&#0187; <a href="#/about">About Me</a><br> &#0187; <a href="#/about">About Me</a><br>
&#0187; <a href="#/photos/albums">Photo Albums</a><br> &#0187; <a href="#/photos/albums">Photo Albums</a><br>
&#0187; <a href="#/guestbook">Guestbook</a><br> &#0187; <a href="#/guestbook">Guestbook</a><br>
&#0187; <a href="#/contact">Contact Me</a> &#0187; <a href="#/contact">Contact Me</a>
</div> </div>
<div class="k-section">Channels</div> <div class="k-section">Channels</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#">Blog Archives</a> &#0187; <a href="#">Blog Archives</a>
</div> </div>
<div class="k-section">Creativity</div> <div class="k-section">Creativity</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/rendering">3D Renderings</a><br> &#0187; <a href="#/rendering">3D Renderings</a><br>
&#0187; <a href="#/flash">Flash Animation</a><br> &#0187; <a href="#/flash">Flash Animation</a><br>
&#0187; <a href="#/javascript">JavaScript</a><br> &#0187; <a href="#/javascript">JavaScript</a><br>
&#0187; <a href="#/fonts">Fonts</a><br> &#0187; <a href="#/fonts">Fonts</a><br>
&#0187; <a href="#/metacity">Metacity</a><br> &#0187; <a href="#/metacity">Metacity</a><br>
&#0187; <a href="#/doc/">Tutorials</a> &#0187; <a href="#/doc/">Tutorials</a>
</div> </div>
<div class="k-section">Software</div> <div class="k-section">Software</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/rivescript">RiveScript</a><br> &#0187; <a href="#/rivescript">RiveScript</a><br>
&#0187; <a href="#/errorgen">Error Generator</a><br> &#0187; <a href="#/errorgen">Error Generator</a><br>
&#0187; <a href="#/tkcalc">Tk Calculator</a><br> &#0187; <a href="#/tkcalc">Tk Calculator</a><br>
&#0187; <a href="#http://sh.kirsle.net/" target="_blank">Terminal Apps</a><br> &#0187; <a href="#http://sh.kirsle.net/" target="_blank">Terminal Apps</a><br>
&#0187; <a href="#/pccc">CyanChat Client</a> &#0187; <a href="#/pccc">CyanChat Client</a>
</div> </div>
<div class="k-section">Web Tools</div> <div class="k-section">Web Tools</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/wizards/ttf2eot.cgi">TTF to EOT</a><br> &#0187; <a href="#/wizards/ttf2eot.cgi">TTF to EOT</a><br>
&#0187; <a href="#/wizards/ps1.html">Bash $PS1 Prompt</a><br> &#0187; <a href="#/wizards/ps1.html">Bash $PS1 Prompt</a><br>
&#0187; <a href="#/wizards/fader.cgi">Text Fader</a><br> &#0187; <a href="#/wizards/fader.cgi">Text Fader</a><br>
&#0187; <a href="#/wizards/favicon.cgi">Favicons</a><br> &#0187; <a href="#/wizards/favicon.cgi">Favicons</a><br>
&#0187; <a href="#/wizards/distance.cgi">Distance Calc</a><br> &#0187; <a href="#/wizards/distance.cgi">Distance Calc</a><br>
&#0187; <a href="#/wizards/translator.html">Azulian Encoder</a><br> &#0187; <a href="#/wizards/translator.html">Azulian Encoder</a><br>
&#0187; <a href="#/wizards/xbmask.cgi">XBM Masks</a><br> &#0187; <a href="#/wizards/xbmask.cgi">XBM Masks</a><br>
&#0187; <a href="#/wizards/flask-session.py">Flask Session</a> &#0187; <a href="#/wizards/flask-session.py">Flask Session</a>
</div> </div>
<div class="k-section">Subdomains</div> <div class="k-section">Subdomains</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#http://sh.kirsle.net/" target="_blank">Shell Scripts</a><br> &#0187; <a href="#http://sh.kirsle.net/" target="_blank">Shell Scripts</a><br>
&#0187; <a href="#http://rpm.kirsle.net/" target="_blank">Linux RPMs</a><br> &#0187; <a href="#http://rpm.kirsle.net/" target="_blank">Linux RPMs</a><br>
&#0187; <a href="#http://rophako.kirsle.net/" target="_blank">Rophako CMS</a><br> &#0187; <a href="#http://rophako.kirsle.net/" target="_blank">Rophako CMS</a><br>
&#0187; <a href="#http://nano.kirsle.net/" target="_blank">Kirsle::Nano</a><br> &#0187; <a href="#http://nano.kirsle.net/" target="_blank">Kirsle::Nano</a><br>
&#0187; <a href="#http://minecraft.kirsle.net/" target="_blank">Minecraft Server</a> &#0187; <a href="#http://minecraft.kirsle.net/" target="_blank">Minecraft Server</a>
</div> </div>
<div class="k-section">Miscellany</div> <div class="k-section">Miscellany</div>
<div class="k-navi"> <div class="k-navi">
&#0164; <a href="#/firered">Pokemon Fuchsia City</a><br> &#0164; <a href="#/firered">Pokemon Fuchsia City</a><br>
&#0164; <a href="#/msdos">DOS and Windows</a><br> &#0164; <a href="#/msdos">DOS and Windows</a><br>
&#0164; <a href="#/raspberrypi">Raspberry Pi</a> &#0164; <a href="#/raspberrypi">Raspberry Pi</a>
</div> </div>
<div class="k-section">Links</div> <div class="k-section">Links</div>
<div class="k-navi"> <div class="k-navi">
&#0164; <a href="#https://www.google.com/+NoahPetherbridge">Google+</a><br> &#0164; <a href="#https://www.google.com/+NoahPetherbridge">Google+</a><br>
&#0164; <a href="#https://twitter.com/kirsle">Twitter</a><br> &#0164; <a href="#https://twitter.com/kirsle">Twitter</a><br>
&#0164; <a href="#https://myspace.com/kirsle">MySpace</a><br> &#0164; <a href="#https://myspace.com/kirsle">MySpace</a><br>
&#0164; <a href="#https://github.com/kirsle">Github</a><br> &#0164; <a href="#https://github.com/kirsle">Github</a><br>
&#0164; <a href="#http://search.cpan.org/~kirsle">CPAN</a><br> &#0164; <a href="#http://search.cpan.org/~kirsle">CPAN</a><br>
&#0164; <a href="#https://www.npmjs.org/~kirsle">npm</a> &#0164; <a href="#https://www.npmjs.org/~kirsle">npm</a>
</div> </div>
<div class="k-section">Fan Club</div> <div class="k-section">Fan Club</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#" class="login-link">Log In</a> &#0187; <a href="#" class="login-link">Log In</a>
</div><p> </div><p>
<div class="k-navi"> <div class="k-navi">
<div class="center"> <div class="center">
<a href="https://www.python.org/" target="_blank"> <a href="https://www.python.org/" target="_blank">
<img src="/designs/solar-html5/python.png" width="80" height="15" alt="Python powered"> <img src="/designs/solar-html5/python.png" width="80" height="15" alt="Python powered">
</a><br> </a><br>
<a href="http://validator.w3.org/check?uri=referer"> <a href="http://validator.w3.org/check?uri=referer">
<img src="/designs/solar-html5/html5.png" width="80" height="15" alt="W3C Valid HTML5"> <img src="/designs/solar-html5/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br> </a><br>
<a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.kirsle.com/solar/screen.css"> <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.kirsle.com/solar/screen.css">
<img src="/designs/solar-html5/css3.png" width="80" height="15" alt="W3C Valid CSS3"> <img src="/designs/solar-html5/css3.png" width="80" height="15" alt="W3C Valid CSS3">
</a><p> </a><p>
<a href="#" target="_blank"> <a href="#" target="_blank">
<img src="/designs/solar-html5/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean"> <img src="/designs/solar-html5/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean">
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<script type="text/javascript" src="/designs/solar-html5/jquery-2.1.0.min.js"></script> <script type="text/javascript" src="/designs/solar-html5/jquery-2.1.0.min.js"></script>

View File

@ -9,243 +9,243 @@
<body> <body>
<div class="k-supernova"> <div class="k-supernova">
<div class="k-kirsle" onClick="self.location='/'"></div> <div class="k-kirsle" onClick="self.location='/'"></div>
</div> </div>
<!-- ####################################################################### --> <!-- ####################################################################### -->
<!-- ## Main Content ## --> <!-- ## Main Content ## -->
<!-- ####################################################################### --> <!-- ####################################################################### -->
<div class="k-content-panel"> <div class="k-content-panel">
<div class="k-content-eyecandy"> <div class="k-content-eyecandy">
<div class="k-content-n"> <div class="k-content-n">
<div class="k-content-ne"></div> <div class="k-content-ne"></div>
</div> </div>
<div class="k-content-main"> <div class="k-content-main">
<div class="k-content-body"> <div class="k-content-body">
<h1>Kirsle.net Solar</h1> <h1>Kirsle.net Solar</h1>
This is the first iteration of the Kirsle.net Solar theme. It uses lots of flat, This is the first iteration of the Kirsle.net Solar theme. It uses lots of flat,
static images rather than true transparency to support Internet Explorer 6.<p> static images rather than true transparency to support Internet Explorer 6.<p>
This design went into effect somewhere around September 28, 2009, which is also This design went into effect somewhere around September 28, 2009, which is also
when I moved my personal site from Cuvou.com over to Kirsle.net. It replaced when I moved my personal site from Cuvou.com over to Kirsle.net. It replaced
the previous <a href="/designs/cosmos">Cosmos</a> theme.<p> the previous <a href="/designs/cosmos">Cosmos</a> theme.<p>
I later <a href="/designs/solar-html5">gave it an HTML5 refresh</a> and broke I later <a href="/designs/solar-html5">gave it an HTML5 refresh</a> and broke
compatibility with MSIE 6. compatibility with MSIE 6.
<h2>Heading Level 2</h2> <h2>Heading Level 2</h2>
Lorem ipsum dolor sit amet, <a href="#">consectetuer adipiscing</a> elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, <a href="#">consectetuer adipiscing</a> elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. <a href="#">Fusce consectetuer</a>, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. <a href="#">Fusce consectetuer</a>, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<pre>Preformatted <pre>Preformatted
T e x t . i</pre> T e x t . i</pre>
<h3>Heading Level 3</h3> <h3>Heading Level 3</h3>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<h4>Heading Level 4</h4> <h4>Heading Level 4</h4>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis pede purus, ornare interdum, consequat in, dignissim vitae, nisi.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum, Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent ornare. Phasellus interdum,
sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl. sem vulputate commodo congue, augue nisl aliquet velit, eu volutpat justo ante vitae lacus. Donec pulvinar scelerisque nisl.
Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat Donec viverra sem eu augue. Phasellus faucibus nulla nec lacus aliquam dapibus. Aliquam nibh ipsum, blandit sit amet, consequat
in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam in, blandit et, massa. Quisque nec urna. Aliquam nec elit ut erat consectetuer feugiat. Suspendisse tincidunt purus vel diam
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p> blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec Nullam et nulla. Fusce consectetuer, ante et auctor egestas, mi mi eleifend lorem, quis pulvinar tellus est at ligula. Donec
pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue pulvinar, nisl vitae tempor fermentum, massa nulla placerat neque, ac posuere enim enim facilisis velit. Phasellus et augue
et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt et nisi placerat eleifend. Mauris quam lectus, consequat ut, rutrum vitae, elementum a, sem. Nam aliquam, metus et tincidunt
cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a, cursus, felis risus faucibus dolor, quis ultricies tellus justo sed ligula. Integer orci magna, cursus sed, eleifend a,
imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam imperdiet vitae, nibh. Aenean mattis nisl at tortor. Integer diam elit, adipiscing vitae, mollis ac, aliquam et, elit. Etiam
hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum. hendrerit, diam non ultrices pellentesque, leo augue egestas mauris, at dictum nisl augue nec odio. Praesent condimentum.
Morbi semper tellus eget ipsum porta pellentesque. Morbi semper tellus eget ipsum porta pellentesque.
<div class="k-copyright"> <div class="k-copyright">
Copyright &copy; 2010 Kirsle<br> Copyright &copy; 2010 Kirsle<br>
Powered by Siikir 0.01 by Casey Kirsle Powered by Siikir 0.01 by Casey Kirsle
</div> </div>
</div> </div>
<div class="k-content-foot"> <div class="k-content-foot">
<div class="k-content-sw"></div> <div class="k-content-sw"></div>
<div class="k-content-se"></div> <div class="k-content-se"></div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- ####################################################################### --> <!-- ####################################################################### -->
<!-- ## Navigation Panel ## --> <!-- ## Navigation Panel ## -->
<!-- ####################################################################### --> <!-- ####################################################################### -->
<div class="k-navpanel"> <div class="k-navpanel">
<div class="k-navbg"> <div class="k-navbg">
<div class="k-navbody"> <div class="k-navbody">
<div class="k-section">Kirsle</div> <div class="k-section">Kirsle</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/">Homepage</a><br> &#0187; <a href="#/">Homepage</a><br>
&#0187; <a href="#/about.html">About Me</a><br> &#0187; <a href="#/about.html">About Me</a><br>
&#0187; <a href="#/photos.html?u=kirsle">Photo Albums</a><br> &#0187; <a href="#/photos.html?u=kirsle">Photo Albums</a><br>
&#0187; <a href="#/guestbook.html">Guestbook</a><br> &#0187; <a href="#/guestbook.html">Guestbook</a><br>
&#0187; <a href="#/profile.html?u=kirsle">Contact Me</a> &#0187; <a href="#/profile.html?u=kirsle">Contact Me</a>
</div> </div>
<div class="k-section">Channels</div> <div class="k-section">Channels</div>
<div class="k-navi"> <div class="k-navi">
&#0164; <a href="#/blog.html?u=kirsle&amp;category=General">General</a> <small>(35)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=General">General</a> <small>(35)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Linux">Linux</a> <small>(27)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Linux">Linux</a> <small>(27)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Perl">Perl</a> <small>(20)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Perl">Perl</a> <small>(20)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Software">Software</a> <small>(15)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Software">Software</a> <small>(15)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=HTML">HTML</a> <small>(7)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=HTML">HTML</a> <small>(7)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=RiveScript">RiveScript</a> <small>(5)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=RiveScript">RiveScript</a> <small>(5)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Design">Design</a> <small>(5)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Design">Design</a> <small>(5)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Windows">Windows</a> <small>(5)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Windows">Windows</a> <small>(5)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Tk">Tk</a> <small>(4)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Tk">Tk</a> <small>(4)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Reviews">Reviews</a> <small>(4)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Reviews">Reviews</a> <small>(4)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Rant">Rant</a> <small>(4)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Rant">Rant</a> <small>(4)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=KAGE">KAGE</a> <small>(3)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=KAGE">KAGE</a> <small>(3)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=DOS">DOS</a> <small>(3)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=DOS">DOS</a> <small>(3)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Photos">Photos</a> <small>(3)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Photos">Photos</a> <small>(3)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Java">Java</a> <small>(3)</small> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Java">Java</a> <small>(3)</small>
<div id="show-more-categories" style="display: block">&#0164; <a href="#/#">More...</a> <div id="show-more-categories" style="display: block">&#0164; <a href="#/#">More...</a>
</div> </div>
<div id="more-categories" style="display: none">&#0164; <a href="#/blog.html?u=kirsle&amp;category=VirtualBox">VirtualBox</a> <small>(2)</small><br> <div id="more-categories" style="display: none">&#0164; <a href="#/blog.html?u=kirsle&amp;category=VirtualBox">VirtualBox</a> <small>(2)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Blackhat">Blackhat</a> <small>(2)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Blackhat">Blackhat</a> <small>(2)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Nostalgia">Nostalgia</a> <small>(2)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Nostalgia">Nostalgia</a> <small>(2)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Ajax">Ajax</a> <small>(2)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Ajax">Ajax</a> <small>(2)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Curiosity">Curiosity</a> <small>(2)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Curiosity">Curiosity</a> <small>(2)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=JavaScript">JavaScript</a> <small>(2)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=JavaScript">JavaScript</a> <small>(2)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Hacking">Hacking</a> <small>(2)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Hacking">Hacking</a> <small>(2)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Ideas">Ideas</a> <small>(2)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Ideas">Ideas</a> <small>(2)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Zelda">Zelda</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Zelda">Zelda</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Apple">Apple</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Apple">Apple</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Perl%206">Perl 6</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Perl%206">Perl 6</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=AIML">AIML</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=AIML">AIML</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Famous">Famous</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Famous">Famous</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Game%20Oddities">Game Oddities</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Game%20Oddities">Game Oddities</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Personal">Personal</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Personal">Personal</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Licensing">Licensing</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Licensing">Licensing</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Experiment">Experiment</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Experiment">Experiment</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=Android">Android</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=Android">Android</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=C%2B%2B">C++</a> <small>(1)</small><br> &#0164; <a href="#/blog.html?u=kirsle&amp;category=C%2B%2B">C++</a> <small>(1)</small><br>
&#0164; <a href="#/blog.html?u=kirsle&amp;category=PHP">PHP</a> <small>(1)</small></div> &#0164; <a href="#/blog.html?u=kirsle&amp;category=PHP">PHP</a> <small>(1)</small></div>
</div> </div>
<div class="k-section">Creativity</div> <div class="k-section">Creativity</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/rendering.html">3D Renderings</a><br> &#0187; <a href="#/rendering.html">3D Renderings</a><br>
&#0187; <a href="#/flash.html">Flash Animation</a><br> &#0187; <a href="#/flash.html">Flash Animation</a><br>
&#0187; <a href="#/javascript.html">JavaScript</a><br> &#0187; <a href="#/javascript.html">JavaScript</a><br>
&#0187; <a href="#/fonts.html">Fonts</a><br> &#0187; <a href="#/fonts.html">Fonts</a><br>
&#0187; <a href="#/metacity.html">Metacity</a><br> &#0187; <a href="#/metacity.html">Metacity</a><br>
&#0187; <a href="#/doc/">Tutorials</a> &#0187; <a href="#/doc/">Tutorials</a>
</div> </div>
<div class="k-section">Software</div> <div class="k-section">Software</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/rivescript.html">RiveScript</a><br> &#0187; <a href="#/rivescript.html">RiveScript</a><br>
&#0187; <a href="#/errorgen.html">Error Generator</a><br> &#0187; <a href="#/errorgen.html">Error Generator</a><br>
&#0187; <a href="#/tkcalc.html">Tk Calculator</a><br> &#0187; <a href="#/tkcalc.html">Tk Calculator</a><br>
&#0187; <a href="#/terminal.html">Terminal Apps</a><br> &#0187; <a href="#/terminal.html">Terminal Apps</a><br>
&#0187; <a href="#/pccc.html">CyanChat Client</a> &#0187; <a href="#/pccc.html">CyanChat Client</a>
</div> </div>
<div class="k-section">Web Tools</div> <div class="k-section">Web Tools</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/wizards/ttf2eot.cgi">TTF to EOT</a><br> &#0187; <a href="#/wizards/ttf2eot.cgi">TTF to EOT</a><br>
&#0187; <a href="#/wizards/fader.cgi">Text Fader</a><br> &#0187; <a href="#/wizards/fader.cgi">Text Fader</a><br>
&#0187; <a href="#/wizards/favicon.cgi">Favicons</a><br> &#0187; <a href="#/wizards/favicon.cgi">Favicons</a><br>
&#0187; <a href="#/wizards/distance.cgi">Distance Calc</a><br> &#0187; <a href="#/wizards/distance.cgi">Distance Calc</a><br>
&#0187; <a href="#/wizards/translator.html">Azulian Encoder</a><br> &#0187; <a href="#/wizards/translator.html">Azulian Encoder</a><br>
&#0187; <a href="#/wizards/xbmask.cgi">XBM Masks</a> &#0187; <a href="#/wizards/xbmask.cgi">XBM Masks</a>
</div> </div>
<div class="k-section">Subdomains</div> <div class="k-section">Subdomains</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#http://svn.kirsle.net/">Subversion</a><br> &#0187; <a href="#http://svn.kirsle.net/">Subversion</a><br>
&#0187; <a href="#http://sh.kirsle.net/">Shell Scripts</a><br> &#0187; <a href="#http://sh.kirsle.net/">Shell Scripts</a><br>
&#0187; <a href="#http://rpm.kirsle.net/">Linux RPMs</a> &#0187; <a href="#http://rpm.kirsle.net/">Linux RPMs</a>
</div> </div>
<div class="k-section">Fan Club</div> <div class="k-section">Fan Club</div>
<div class="k-navi"> <div class="k-navi">
&#0187; <a href="#/login.html">Log In</a><br> &#0187; <a href="#/login.html">Log In</a><br>
&#0187; <a href="#/register.html">Sign Up</a> &#0187; <a href="#/register.html">Sign Up</a>
</div><p> </div><p>
<div class="k-navi"> <div class="k-navi">
<div class="center"> <div class="center">
<a href="#http://validator.w3.org/check?uri=referer"> <a href="#http://validator.w3.org/check?uri=referer">
<img src="/designs/solar/html.png" width="88" height="31" alt="HTML 4.01 Strict"> <img src="/designs/solar/html.png" width="88" height="31" alt="HTML 4.01 Strict">
</a><br> </a><br>
<a href="#http://jigsaw.w3.org/css-validator/validator?uri=http://www.kirsle.com/solar/screen.css"> <a href="#http://jigsaw.w3.org/css-validator/validator?uri=http://www.kirsle.com/solar/screen.css">
<img src="/designs/solar/css.png" width="88" height="31" alt="CSS"> <img src="/designs/solar/css.png" width="88" height="31" alt="CSS">
</a><br> </a><br>
<a href="#http://www.perl.org/"> <a href="#http://www.perl.org/">
<img src="/designs/solar/perlpowered.png" width="88" height="31" alt="Powered by Perl"> <img src="/designs/solar/perlpowered.png" width="88" height="31" alt="Powered by Perl">
</a> </a>
</div> </div>
</div><p> </div><p>
<div style="margin-left: 4px; margin-right: 4px; border: 1px solid #006699"> <div style="margin-left: 4px; margin-right: 4px; border: 1px solid #006699">
<div style="background-color: #006699; color: #FFFFFF; font-size: 8pt; font-weight: bold; text-align: center; border-bottom: 1px solid #000000"> <div style="background-color: #006699; color: #FFFFFF; font-size: 8pt; font-weight: bold; text-align: center; border-bottom: 1px solid #000000">
Statistics Statistics
</div> </div>
<div style="padding: 2px; font-size: smaller"> <div style="padding: 2px; font-size: smaller">
Total Hits: Total Hits:
<div style="border: 1px inset #006699; padding: 2px"> <div style="border: 1px inset #006699; padding: 2px">
<strong>490</strong> today, and<br> <strong>490</strong> today, and<br>
<strong>31264</strong> altogether <strong>31264</strong> altogether
</div> </div>
Unique Visitors: Unique Visitors:
<div style="border: 1px inset #006699; padding: 2px"> <div style="border: 1px inset #006699; padding: 2px">
<strong>256</strong> today, and<br> <strong>256</strong> today, and<br>
<strong>852</strong> altogether <strong>852</strong> altogether
</div> </div>
&#0164; <a href="#/traffic.html?do=hits" style="text-decoration: underline; font-weight: normal"> &#0164; <a href="#/traffic.html?do=hits" style="text-decoration: underline; font-weight: normal">
Traffic Stats</a><br> Traffic Stats</a><br>
&#0164; <a href="#/traffic.html?do=browsers" style="text-decoration: underline; font-weight: normal"> &#0164; <a href="#/traffic.html?do=browsers" style="text-decoration: underline; font-weight: normal">
Web Browsers &amp; OS's</a><br> Web Browsers &amp; OS's</a><br>
&#0164; <a href="#/traffic.html?do=referer" style="text-decoration: underline; font-weight: normal"> &#0164; <a href="#/traffic.html?do=referer" style="text-decoration: underline; font-weight: normal">
HTTP Referrers</a> HTTP Referrers</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="k-navfoot"></div> <div class="k-navfoot"></div>
</div> </div>
</body> </body>
@ -255,10 +255,10 @@
<!-- <!--
FILE ARCHIVED ON 1:33:28 May 6, 2010 AND RETRIEVED FROM THE FILE ARCHIVED ON 1:33:28 May 6, 2010 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 18:25:04 Oct 16, 2014. INTERNET ARCHIVE ON 18:25:04 Oct 16, 2014.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)). SECTION 108(a)(3)).
--> -->

View File

@ -33,7 +33,7 @@ And yet more text.
And some more. And also:<p> And some more. And also:<p>
<pre>Some p r e f o r m a t t e d <pre>Some p r e f o r m a t t e d
text.</pre> text.</pre>
<div class="copyright"> <div class="copyright">
Web design and content copyright &copy; 2008 Casey Kirsle.<br> Web design and content copyright &copy; 2008 Casey Kirsle.<br>
@ -170,12 +170,12 @@ And some more. And also:<p>
########################################################## ##########################################################
# Hyperlink Editor Script || Copyright 2007 Casey Kirsle # # Hyperlink Editor Script || Copyright 2007 Casey Kirsle #
#--------------------------------------------------------# #--------------------------------------------------------#
# This script makes all offsite links open in a new # # This script makes all offsite links open in a new #
# window, and turns all e-mail links in the format of # # window, and turns all e-mail links in the format of #
# "name-at-domain.com" into "name@domain.com" # # "name-at-domain.com" into "name@domain.com" #
#--------------------------------------------------------# #--------------------------------------------------------#
# Use content only with permission. Get permission from # # Use content only with permission. Get permission from #
# casey "at" cuvou.org # # casey "at" cuvou.org #
########################################################## ##########################################################
*/ */
// var localAddr = new Array(); // var localAddr = new Array();
@ -192,140 +192,140 @@ And some more. And also:<p>
// localAddr[10] = "pwn.cuvou.com"; // localAddr[10] = "pwn.cuvou.com";
// if (document.getElementsByTagName) { // if (document.getElementsByTagName) {
// var links = document.getElementsByTagName("a"); // var links = document.getElementsByTagName("a");
// for (var i = 0; i < links.length; i++) { // for (var i = 0; i < links.length; i++) {
// var loc = links[i].href; // var loc = links[i].href;
// // Deobfuscate Starburst-encoded e-mail links. // // Deobfuscate Starburst-encoded e-mail links.
// if (links[i].className == "sb-email") { // if (links[i].className == "sb-email") {
// // Rot13-decode everything. // // Rot13-decode everything.
// var parts = links[i].href.split("who="); // var parts = links[i].href.split("who=");
// email = rot13(parts[1]); // email = rot13(parts[1]);
// var newmail = email.split("+").join("@"); // var newmail = email.split("+").join("@");
// links[i].href = "mailto:" + newmail; // links[i].href = "mailto:" + newmail;
// // If the label is an e-mail format too, do the same to it. // // If the label is an e-mail format too, do the same to it.
// var lab = links[i].innerHTML; // var lab = links[i].innerHTML;
// if (lab.indexOf("+") > -1) { // if (lab.indexOf("+") > -1) {
// lab = rot13(lab); // lab = rot13(lab);
// var newlab = lab.split("+").join("@"); // var newlab = lab.split("+").join("@");
// links[i].innerHTML = newlab; // links[i].innerHTML = newlab;
// } // }
// } // }
// else { // else {
// // Continue with link formatting by protocol. // // Continue with link formatting by protocol.
// var parts = loc.split ("/"); // http, null, domain name, request // var parts = loc.split ("/"); // http, null, domain name, request
// var prot = parts[0].split(":"); // var prot = parts[0].split(":");
// var protocol = prot[0]; // var protocol = prot[0];
// protocol.toLowerCase; // protocol.toLowerCase;
// if (protocol == "http" || protocol == "https") { // if (protocol == "http" || protocol == "https") {
// // This is an absolute URL. // // This is an absolute URL.
// var isLocal = 0; // var isLocal = 0;
// for (var j = 0; j < localAddr.length; j++) { // for (var j = 0; j < localAddr.length; j++) {
// if (parts[2] == localAddr[j]) { // if (parts[2] == localAddr[j]) {
// isLocal = 1; // isLocal = 1;
// } // }
// } // }
// if (isLocal == 1) { // if (isLocal == 1) {
// // Local links don't need to be modified. // // Local links don't need to be modified.
// } // }
// else { // else {
// // Remote links need to open in a new window. // // Remote links need to open in a new window.
// links[i].target = "_blank"; // links[i].target = "_blank";
// } // }
// } // }
// else if (protocol == "mailto") { // else if (protocol == "mailto") {
// // MailTo link. See if this isn't a normal link. // // MailTo link. See if this isn't a normal link.
// if (loc.indexOf("-at-") > -1) { // if (loc.indexOf("-at-") > -1) {
// var newhref = loc.split("-at-").join("@"); // var newhref = loc.split("-at-").join("@");
// links[i].href = newhref; // links[i].href = newhref;
// // Convert it in the text too. // // Convert it in the text too.
// if (links[i].innerHTML.indexOf("-at-") > -1) { // if (links[i].innerHTML.indexOf("-at-") > -1) {
// var mailLabel = links[i].innerHTML.split("-at-"); // var mailLabel = links[i].innerHTML.split("-at-");
// var newLabel = mailLabel.join ("@"); // var newLabel = mailLabel.join ("@");
// links[i].innerHTML = newLabel; // links[i].innerHTML = newLabel;
// } // }
// } // }
// } // }
// else if (protocol == "msnim") { // else if (protocol == "msnim") {
// if (loc.indexOf("-at-") > -1) { // if (loc.indexOf("-at-") > -1) {
// var newhref = loc.split("-at-").join("@"); // var newhref = loc.split("-at-").join("@");
// links[i].href = newhref; // links[i].href = newhref;
// // Convert it in the text too. // // Convert it in the text too.
// if (links[i].innerHTML.indexOf("-at-") > -1) { // if (links[i].innerHTML.indexOf("-at-") > -1) {
// var mailLabel = links[i].innerHTML.split("-at-"); // var mailLabel = links[i].innerHTML.split("-at-");
// var newLabel = mailLabel.join ("@"); // var newLabel = mailLabel.join ("@");
// links[i].innerHTML = newLabel; // links[i].innerHTML = newLabel;
// } // }
// } // }
// } // }
// else if (protocol == "xmpp") { // else if (protocol == "xmpp") {
// if (loc.indexOf("-at-") > -1) { // if (loc.indexOf("-at-") > -1) {
// var newhref = loc.split("-at-").join("@"); // var newhref = loc.split("-at-").join("@");
// links[i].href = newhref; // links[i].href = newhref;
// // Convert it in the text too. // // Convert it in the text too.
// if (links[i].innerHTML.indexOf("-at-") > -1) { // if (links[i].innerHTML.indexOf("-at-") > -1) {
// var mailLabel = links[i].innerHTML.split("-at-"); // var mailLabel = links[i].innerHTML.split("-at-");
// var newLabel = mailLabel.join ("@"); // var newLabel = mailLabel.join ("@");
// links[i].innerHTML = newLabel; // links[i].innerHTML = newLabel;
// } // }
// } // }
// } // }
// } // }
// } // }
// } // }
/* /*
########################################################## ##########################################################
# Rot13 Encoder/Decoder Functions # # Rot13 Encoder/Decoder Functions #
########################################################## ##########################################################
*/ */
// function rot13(txt) { // function rot13(txt) {
// var result = ''; // var result = '';
// for (var i = 0; i < txt.length; i++) { // for (var i = 0; i < txt.length; i++) {
// var b = txt.charCodeAt(i); // var b = txt.charCodeAt(i);
// // 65 = A 97 = a // // 65 = A 97 = a
// // 77 = M 109 = m // // 77 = M 109 = m
// // 78 = N 110 = n // // 78 = N 110 = n
// // 90 = Z 122 = z // // 90 = Z 122 = z
// var isLetter = 0; // var isLetter = 0;
// if (b >= 65 && b <= 77) { // if (b >= 65 && b <= 77) {
// isLetter = 1; // isLetter = 1;
// b += 13; // b += 13;
// } // }
// else if (b >= 97 && b <= 109) { // else if (b >= 97 && b <= 109) {
// isLetter = 1; // isLetter = 1;
// b += 13; // b += 13;
// } // }
// else if (b >= 78 && b <= 90) { // else if (b >= 78 && b <= 90) {
// isLetter = 1; // isLetter = 1;
// b -= 13; // b -= 13;
// } // }
// else if (b >= 110 && b <= 122) { // else if (b >= 110 && b <= 122) {
// isLetter = 1; // isLetter = 1;
// b -= 13; // b -= 13;
// } // }
// if (isLetter) { // if (isLetter) {
// result += String.fromCharCode(b); // result += String.fromCharCode(b);
// } // }
// else { // else {
// result += txt[i]; // result += txt[i];
// } // }
// } // }
// return result; // return result;
// } // }
</script> </script>

View File

@ -34,7 +34,7 @@
And some more. And also:<p> And some more. And also:<p>
<pre>Some p r e f o r m a t t e d <pre>Some p r e f o r m a t t e d
text.</pre> text.</pre>
<div class="copyright"> <div class="copyright">
Web design and content copyright &copy; 2008 Casey Kirsle.<br> Web design and content copyright &copy; 2008 Casey Kirsle.<br>

View File

@ -3,42 +3,42 @@
{% block content %} {% block content %}
{% if method == "index" %} {% if method == "index" %}
<h1>Project {{ project }}</h1> <h1>Project {{ project }}</h1>
You are about to download the file <strong>{{ file }}</strong> from the You are about to download the file <strong>{{ file }}</strong> from the
project <strong>{{ project }}</strong>. This file has been downloaded project <strong>{{ project }}</strong>. This file has been downloaded
{{ hits }} time(s). {{ hits }} time(s).
<h1>Download</h1> <h1>Download</h1>
To continue your download, click on the button below. To continue your download, click on the button below.
<br><br><br> <br><br><br>
<form name="download" action="/download" method="POST"> <form name="download" action="/download" method="POST">
<input type="hidden" name="token" value="{{ csrf_token() }}"> <input type="hidden" name="token" value="{{ csrf_token() }}">
<input type="hidden" name="method" value="get"> <input type="hidden" name="method" value="get">
<input type="hidden" name="project" value="{{ project }}"> <input type="hidden" name="project" value="{{ project }}">
<input type="hidden" name="file" value="{{ file }}"> <input type="hidden" name="file" value="{{ file }}">
<span style="background-color: #88AADD; padding: 15px; border-top: 2px solid #006699; <span style="background-color: #88AADD; padding: 15px; border-top: 2px solid #006699;
border-left: 2px solid #006699; border-right: 2px solid #AACCFF; border-bottom: 2px solid #AACCFF"> border-left: 2px solid #006699; border-right: 2px solid #AACCFF; border-bottom: 2px solid #AACCFF">
<button type="submit">Download Now</button> <button type="submit">Download Now</button>
</span> </span>
</form> </form>
{% elif method == "get" %} {% elif method == "get" %}
<h1>Downloading File...</h1> <h1>Downloading File...</h1>
Your download of <strong>{{ file }}</strong> will begin shortly. If it doesn't, Your download of <strong>{{ file }}</strong> will begin shortly. If it doesn't,
<a href="/projects/{{ project }}/{{ file }}">download it directly</a>. <a href="/projects/{{ project }}/{{ file }}">download it directly</a>.
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
{% if method == "get" %} {% if method == "get" %}
<script> <script>
$(document).ready(function() { $(document).ready(function() {
window.location.href = "/projects/{{ project }}/{{ file }}"; window.location.href = "/projects/{{ project }}/{{ file }}";
}); });
</script> </script>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -5,144 +5,144 @@
<h1>Error Message Generator</h1> <h1>Error Message Generator</h1>
<ul> <ul>
<li><a href="#intro">Project Description</a></li> <li><a href="#intro">Project Description</a></li>
<li><a href="#screenshots">Screenshots</a></li> <li><a href="#screenshots">Screenshots</a></li>
<li><a href="#zenmsg">ZenMsg</a></li> <li><a href="#zenmsg">ZenMsg</a></li>
<li><a href="#license">License</a></li> <li><a href="#license">License</a></li>
<li><a href="#downloads">Downloads</a></li> <li><a href="#downloads">Downloads</a></li>
</ul> </ul>
<a name="intro"></a> <a name="intro"></a>
<img src="projects/ErrorGen/logo.png" alt="ErrorGen" width="400" height="90"> <img src="projects/ErrorGen/logo.png" alt="ErrorGen" width="400" height="90">
<h2>Project Description</h2> <h2>Project Description</h2>
The <strong>Error Message Generator</strong> (ErrorGen) is a simple The <strong>Error Message Generator</strong> (ErrorGen) is a simple
program that generates customized error dialogs. The idea was inspired program that generates customized error dialogs. The idea was inspired
by a web-based error generator which created <em>images</em> of error by a web-based error generator which created <em>images</em> of error
boxes. My program, however, creates "real" error boxes that can be boxes. My program, however, creates "real" error boxes that can be
dragged around the screen and interacted with.<p> dragged around the screen and interacted with.<p>
The command-line, scriptable version of Error Message Generator is called The command-line, scriptable version of Error Message Generator is called
<strong>ZenMsg</strong>, named after the GNOME utility, Zenity. It's <strong>ZenMsg</strong>, named after the GNOME utility, Zenity. It's
a version of the generator that can be provoked from batch files and a version of the generator that can be provoked from batch files and
scripts. scripts.
<h3>Features</h3> <h3>Features</h3>
<ul> <ul>
<li>Fully customizable error box: select the title, icon, <li>Fully customizable error box: select the title, icon,
and message.</li> and message.</li>
<li>Create up to THREE buttons for the error box and specify <li>Create up to THREE buttons for the error box and specify
what each of them say, and which ones are "greyed out"</li> what each of them say, and which ones are "greyed out"</li>
<li>Advanced features to make the error keep coming back until <li>Advanced features to make the error keep coming back until
the right button is selected.</li> the right button is selected.</li>
<li>A button that minimizes and renames the control window, <li>A button that minimizes and renames the control window,
leaving only the error dialog visible on screen.</li> leaving only the error dialog visible on screen.</li>
</ul> </ul>
<a name="screenshots"></a> <a name="screenshots"></a>
<h2 style="margin-top: 0px">Screenshots</h2> <h2 style="margin-top: 0px">Screenshots</h2>
<table border="0" cellspacing="0" cellpadding="0" style="margin-left: auto; margin-right: auto"> <table border="0" cellspacing="0" cellpadding="0" style="margin-left: auto; margin-right: auto">
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="projects/ErrorGen/ErrorGen.jpg"> <a href="projects/ErrorGen/ErrorGen.jpg">
<img src="projects/ErrorGen/ErrorGenS.jpg" width="600" height="364" alt="Screenshot"> <img src="projects/ErrorGen/ErrorGenS.jpg" width="600" height="364" alt="Screenshot">
</a><br> </a><br>
ErrorGen in action, surrounded by example error messages.<br> ErrorGen in action, surrounded by example error messages.<br>
(click for a larger version) (click for a larger version)
</td> </td>
</tr> </tr>
</table> </table>
<a name="zenmsg"></a> <a name="zenmsg"></a>
<h2 style="margin-top: 0px">ZenMsg</h2> <h2 style="margin-top: 0px">ZenMsg</h2>
ZenMsg is a command-line version of Error Message Generator that ZenMsg is a command-line version of Error Message Generator that
can be invoked by batch files or scripts. Example usage: can be invoked by batch files or scripts. Example usage:
<pre style="overflow-x: auto">ZenMsg --error -t "An error has occurred." -b "Abort" -b "Retry" -b "Fail"</pre> <pre style="overflow-x: auto">ZenMsg --error -t "An error has occurred." -b "Abort" -b "Retry" -b "Fail"</pre>
The executable comes with an HTML help file. <code>ZenMsg -?</code> The executable comes with an HTML help file. <code>ZenMsg -?</code>
will display the same help file at the command line. The document will display the same help file at the command line. The document
describes how to use ZenMsg.<p> describes how to use ZenMsg.<p>
There is no binary Linux version of this utility. The source code There is no binary Linux version of this utility. The source code
however is available and will execute under Linux; I've just not however is available and will execute under Linux; I've just not
compiled a standalone executable (there are a handful of other compiled a standalone executable (there are a handful of other
utilities that do the job: see utilities that do the job: see
<a href="http://live.gnome.org/Zenity">Zenity</a>. Source code <a href="http://live.gnome.org/Zenity">Zenity</a>. Source code
is available on the Downloads tab. is available on the Downloads tab.
<h3>Windows Executable</h3> <h3>Windows Executable</h3>
<blockquote> <blockquote>
<img src="images/dos.png" width="32" height="32" alt="Win32" style="vertical-align: middle"> <img src="images/dos.png" width="32" height="32" alt="Win32" style="vertical-align: middle">
<a href="/download?type=bin&amp;project=ZenMsg&amp;file=ZenMsg-0.01-bin.zip"> <a href="/download?type=bin&amp;project=ZenMsg&amp;file=ZenMsg-0.01-bin.zip">
Download ZenMsg</a><br> Download ZenMsg</a><br>
Version 0.01 - 2008/09/18<br> Version 0.01 - 2008/09/18<br>
<small>ZIP format/3.6 MB</small> <small>ZIP format/3.6 MB</small>
</blockquote> </blockquote>
<a name="license"></a> <a name="license"></a>
<h2 style="margin-top: 0px">Software License</h2> <h2 style="margin-top: 0px">Software License</h2>
<pre> Error Message Generator <pre> Error Message Generator
Copyright (C) 2008 Casey Kirsle Copyright (C) 2008 Casey Kirsle
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or the Free Software Foundation; either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License along You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</pre> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</pre>
<a name="downloads"></a> <a name="downloads"></a>
<h2 style="margin-top: 0px">Downloads</h2> <h2 style="margin-top: 0px">Downloads</h2>
It's recommended that you download the latest version of this software It's recommended that you download the latest version of this software
as listed below. To download older versions and source code, skip to as listed below. To download older versions and source code, skip to
the next section. the next section.
<h3>Windows Executable</h3> <h3>Windows Executable</h3>
<blockquote> <blockquote>
<img src="images/dos.png" width="32" height="32" alt="Win32" style="vertical-align: middle"> <img src="images/dos.png" width="32" height="32" alt="Win32" style="vertical-align: middle">
<a href="/download?type=bin&amp;project=ErrorGen&amp;file=ErrorGen-1.2_bin.zip"> <a href="/download?type=bin&amp;project=ErrorGen&amp;file=ErrorGen-1.2_bin.zip">
Download Error Message Generator</a><br> Download Error Message Generator</a><br>
Version 1.2 - 2007/06/28<br> Version 1.2 - 2007/06/28<br>
<small>ZIP format/2.1 MB</small> <small>ZIP format/2.1 MB</small>
</blockquote> </blockquote>
<h3>Linux Binary</h3> <h3>Linux Binary</h3>
<blockquote> <blockquote>
<img src="images/exec.png" width="32" height="32" alt="Linux" style="vertical-align: middle"> <img src="images/exec.png" width="32" height="32" alt="Linux" style="vertical-align: middle">
<a href="/download?type=bin&amp;project=ErrorGen&amp;file=ErrorGen-1.2_linux.tar.gz"> <a href="/download?type=bin&amp;project=ErrorGen&amp;file=ErrorGen-1.2_linux.tar.gz">
Download Error Message Generator</a><br> Download Error Message Generator</a><br>
Version 1.2 - 2007/06/28<br> Version 1.2 - 2007/06/28<br>
<small>TAR.GZ format/4.6 MB</small> <small>TAR.GZ format/4.6 MB</small>
</blockquote> </blockquote>
<h2>All Distributions</h2> <h2>All Distributions</h2>
The following are all the distributions available for this software, The following are all the distributions available for this software,
starting with the most recent. Source code is also available for all starting with the most recent. Source code is also available for all
versions.<p> versions.<p>
<table border="0" cellspacing="2" cellpadding="2" class="distro"> <table border="0" cellspacing="2" cellpadding="2" class="distro">
<tr> <tr>
<th>Release</th> <th>Release</th>
<th>Windows EXE</th> <th>Windows EXE</th>

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +1,33 @@
{# Google ads for Kirsle.net #} {# Google ads for Kirsle.net #}
{% macro nav_ads() %} {% macro nav_ads() %}
<div style="text-align: center"> <div style="text-align: center">
<script type="text/javascript"><!-- <script type="text/javascript"><!--
google_ad_client = "ca-pub-0838718168234603"; google_ad_client = "ca-pub-0838718168234603";
/* Kirsle.net Nav */ /* Kirsle.net Nav */
google_ad_slot = "1728209841"; google_ad_slot = "1728209841";
google_ad_width = 120; google_ad_width = 120;
google_ad_height = 240; google_ad_height = 240;
//--> //-->
</script> </script>
<script type="text/javascript" <script type="text/javascript"
src="//pagead2.googlesyndication.com/pagead/show_ads.js"> src="//pagead2.googlesyndication.com/pagead/show_ads.js">
</script> </script>
</div> </div>
{% endmacro %} {% endmacro %}
{% macro leaderboard() %} {% macro leaderboard() %}
<div style="text-align: center" class="google-leaderboard"> <div style="text-align: center" class="google-leaderboard">
<script type="text/javascript"><!-- <script type="text/javascript"><!--
google_ad_client = "ca-pub-0838718168234603"; google_ad_client = "ca-pub-0838718168234603";
/* Kirsle.net Leaderboard */ /* Kirsle.net Leaderboard */
google_ad_slot = "9251476641"; google_ad_slot = "9251476641";
google_ad_width = 728; google_ad_width = 728;
google_ad_height = 90; google_ad_height = 90;
//--> //-->
</script> </script>
<script type="text/javascript" <script type="text/javascript"
src="//pagead2.googlesyndication.com/pagead/show_ads.js"> src="//pagead2.googlesyndication.com/pagead/show_ads.js">
</script> </script>
</div> </div>
{% endmacro %} {% endmacro %}

View File

@ -5,9 +5,9 @@
<h1>My Guestbook</h1> <h1>My Guestbook</h1>
{{ include_page("comment.partial_index", {{ include_page("comment.partial_index",
thread="guestbook", thread="guestbook",
subject="My Guestbook", subject="My Guestbook",
header=False, header=False,
) | safe }} ) | safe }}
{% endblock %} {% endblock %}

View File

@ -29,14 +29,14 @@ often in the JavaScript world, but a roleplaying game that requires a lot of
programming and attention to detail.<p> programming and attention to detail.<p>
&#0164; <a href="creativity/javascript/jsrpg.html" onClick="return openWin(this)"> &#0164; <a href="creativity/javascript/jsrpg.html" onClick="return openWin(this)">
View this script in action</a><p> View this script in action</a><p>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script type="text/javascript"> <script type="text/javascript">
function openWin(obj) { function openWin(obj) {
window.open (obj.href); window.open (obj.href);
return false; return false;
} }
</script> </script>
{% endblock %} {% endblock %}

View File

@ -5,16 +5,16 @@
*/ */
$(document).ready(function() { $(document).ready(function() {
$("a").each(function() { $("a").each(function() {
var $a = $(this); var $a = $(this);
var href = $a.attr("href"); var href = $a.attr("href");
if (href === undefined) { if (href === undefined) {
return; return;
} }
// Detect offsite links. // Detect offsite links.
if (href.indexOf("http:") == 0 || href.indexOf("https:") == 0) { if (href.indexOf("http:") == 0 || href.indexOf("https:") == 0) {
$a.attr("target", "_blank"); $a.attr("target", "_blank");
} }
}); });
}); });

View File

@ -1,220 +1,220 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}{% endblock %} - Kirsle.net</title> <title>{% block title %}{% endblock %} - Kirsle.net</title>
<!-- Bootstrap --> <!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/css/bootstrap-theme.min.css"> <link rel="stylesheet" type="text/css" href="/css/bootstrap-theme.min.css">
<!-- Kirsle.net Solar --> <!-- Kirsle.net Solar -->
<link rel="stylesheet" type="text/css" media="screen" href="/solar/ui.css"> <link rel="stylesheet" type="text/css" media="screen" href="/solar/ui.css">
<link rel="stylesheet" type="text/css" media="print" href="/solar/print.css"> <link rel="stylesheet" type="text/css" media="print" href="/solar/print.css">
<link rel="stylesheet" type="text/css" href="/solar/monokai.css"> <link rel="stylesheet" type="text/css" href="/solar/monokai.css">
<link rel="stylesheet" type="text/css" href="/solar/vim-syntax.css"> <link rel="stylesheet" type="text/css" href="/solar/vim-syntax.css">
<link rel="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog/rss"> <link rel="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog/rss">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--> <![endif]-->
</head> </head>
<body> <body>
{% from "google-ads.inc.html" import leaderboard, nav_ads %} {% from "google-ads.inc.html" import leaderboard, nav_ads %}
<div class="mobile-nav"> <div class="mobile-nav">
<a href="#navbar" class="btn btn-primary"><i class="glyphicon glyphicon-list"></i></a> <a href="#navbar" class="btn btn-primary"><i class="glyphicon glyphicon-list"></i></a>
</div> </div>
<div class="k-supernova"></div> <div class="k-supernova"></div>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-md-4 col-md-offset-3"> <div class="col-md-4 col-md-offset-3">
<div class="k-kirsle" onclick="self.location='/'"></div> <div class="k-kirsle" onclick="self.location='/'"></div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-10 col-sm-push-2"> <div class="col-sm-10 col-sm-push-2">
<div class="k-content-panel"> <div class="k-content-panel">
{% with messages = get_flashed_messages() %} {% with messages = get_flashed_messages() %}
{% if messages %} {% if messages %}
<h1>Notice!</h1> <h1>Notice!</h1>
<ul> <ul>
{% for message in messages %} {% for message in messages %}
<li>{{ message }}</li> <li>{{ message }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}
{% endwith %} {% endwith %}
{% block content %}{% endblock %} {% block content %}{% endblock %}
{% if uri not in ["/", "/blog/index"] and not "/blog/category" in uri %} {% if uri not in ["/", "/blog/index"] and not "/blog/category" in uri %}
<br><br> <br><br>
{{ leaderboard() }} {{ leaderboard() }}
{% endif %} {% endif %}
<div class="k-copyright"> <div class="k-copyright">
Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br> Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br>
Powered by <a href="http://rophako.kirsle.net/" target="_blank">{{ app["name"] }}</a> v{{ app["version"] }} - Powered by <a href="http://rophako.kirsle.net/" target="_blank">{{ app["name"] }}</a> v{{ app["version"] }} -
Hosted by <a href="https://www.digitalocean.com/?refcode=ea01734d3fc7">DigitalOcean</a><br> Hosted by <a href="https://www.digitalocean.com/?refcode=ea01734d3fc7">DigitalOcean</a><br>
Page generated in %time_elapsed%s. Page generated in %time_elapsed%s.
</div> </div>
</div> </div>
</div> </div>
<div class="col-sm-2 col-sm-pull-10"> <div class="col-sm-2 col-sm-pull-10">
<div class="k-navpanel"> <div class="k-navpanel">
<a name="navbar"></a> <a name="navbar"></a>
<div class="k-section">Kirsle</div> <div class="k-section">Kirsle</div>
<ul> <ul>
<li>&#0187; <a href="/">Homepage</a> (<a href="{{ url_for('blog.rss') }}">RSS</a>)</li> <li>&#0187; <a href="/">Homepage</a> (<a href="{{ url_for('blog.rss') }}">RSS</a>)</li>
<li>&#0187; <a href="/about">About Me</a></li> <li>&#0187; <a href="/about">About Me</a></li>
<li>&#0187; <a href="/photos/albums">Photo Albums</a></li> <li>&#0187; <a href="/photos/albums">Photo Albums</a></li>
<li>&#0187; <a href="/wiki/Main-Page">Wiki</a></li> <li>&#0187; <a href="/wiki/Main-Page">Wiki</a></li>
<li>&#0187; <a href="/guestbook">Guestbook</a></li> <li>&#0187; <a href="/guestbook">Guestbook</a></li>
<li>&#0187; <a href="/contact">Contact Me</a></li> <li>&#0187; <a href="/contact">Contact Me</a></li>
</ul> </ul>
<div class="k-section">Channels</div> <div class="k-section">Channels</div>
<ul> <ul>
<li>&#0187; <a href="{{ url_for('blog.archive') }}">Blog Archives</a></li> <li>&#0187; <a href="{{ url_for('blog.archive') }}">Blog Archives</a></li>
{{ include_page("blog.partial_tags")|safe }} {{ include_page("blog.partial_tags")|safe }}
</ul> </ul>
<div class="k-section">Creativity</div> <div class="k-section">Creativity</div>
<ul> <ul>
<li>&#0187; <a href="/rendering">3D Renderings</a></li> <li>&#0187; <a href="/rendering">3D Renderings</a></li>
<li>&#0187; <a href="/flash">Flash Animation</a></li> <li>&#0187; <a href="/flash">Flash Animation</a></li>
<li>&#0187; <a href="/javascript">JavaScript</a></li> <li>&#0187; <a href="/javascript">JavaScript</a></li>
<li>&#0187; <a href="/fonts">Fonts</a></li> <li>&#0187; <a href="/fonts">Fonts</a></li>
<li>&#0187; <a href="/doc/">Tutorials</a></li> <li>&#0187; <a href="/doc/">Tutorials</a></li>
<li>&#0187; <a href="/designs">Web Design</a></li> <li>&#0187; <a href="/designs">Web Design</a></li>
</ul> </ul>
<div class="k-section">Software</div> <div class="k-section">Software</div>
<ul> <ul>
<li>&#0187; <a href="/rivescript">RiveScript</a></li> <li>&#0187; <a href="/rivescript">RiveScript</a></li>
<li>&#0187; <a href="/errorgen">Error Generator</a></li> <li>&#0187; <a href="/errorgen">Error Generator</a></li>
<li>&#0187; <a href="/tkcalc">Tk Calculator</a></li> <li>&#0187; <a href="/tkcalc">Tk Calculator</a></li>
<li>&#0187; <a href="http://sh.kirsle.net/" target="_blank">Terminal Apps</a></li> <li>&#0187; <a href="http://sh.kirsle.net/" target="_blank">Terminal Apps</a></li>
<li>&#0187; <a href="/pccc">CyanChat Client</a></li> <li>&#0187; <a href="/pccc">CyanChat Client</a></li>
</ul> </ul>
<div class="k-section">Web Tools</div> <div class="k-section">Web Tools</div>
<ul> <ul>
<li>&#0187; <a href="/wizards/ttf2eot.cgi">TTF to EOT</a></li> <li>&#0187; <a href="/wizards/ttf2eot.cgi">TTF to EOT</a></li>
<li>&#0187; <a href="/wizards/ps1.html">Bash $PS1 Prompt</a></li> <li>&#0187; <a href="/wizards/ps1.html">Bash $PS1 Prompt</a></li>
<li>&#0187; <a href="/wizards/fader.cgi">Text Fader</a></li> <li>&#0187; <a href="/wizards/fader.cgi">Text Fader</a></li>
<li>&#0187; <a href="/wizards/favicon.cgi">Favicons</a></li> <li>&#0187; <a href="/wizards/favicon.cgi">Favicons</a></li>
<li>&#0187; <a href="/wizards/distance.cgi">Distance Calc</a></li> <li>&#0187; <a href="/wizards/distance.cgi">Distance Calc</a></li>
<li>&#0187; <a href="/wizards/translator.html">Azulian Translater</a></li> <li>&#0187; <a href="/wizards/translator.html">Azulian Translater</a></li>
<li>&#0187; <a href="/wizards/xbmask.cgi">XBM Masks</a></li> <li>&#0187; <a href="/wizards/xbmask.cgi">XBM Masks</a></li>
<li>&#0187; <a href="/wizards/flask-session.py">Flask Session</a></li> <li>&#0187; <a href="/wizards/flask-session.py">Flask Session</a></li>
</ul> </ul>
<div class="k-section">Subdomains</div> <div class="k-section">Subdomains</div>
<ul> <ul>
<li>&#0187; <a href="http://sh.kirsle.net/">Shell Scripts</a></li> <li>&#0187; <a href="http://sh.kirsle.net/">Shell Scripts</a></li>
<li>&#0187; <a href="http://rpm.kirsle.net/">Linux RPMs</a></li> <li>&#0187; <a href="http://rpm.kirsle.net/">Linux RPMs</a></li>
<li>&#0187; <a href="http://rophako.kirsle.net/">Rophako CMS</a></li> <li>&#0187; <a href="http://rophako.kirsle.net/">Rophako CMS</a></li>
<li>&#0187; <a href="http://mc.kirsle.net/">Minecraft Server</a></li> <li>&#0187; <a href="http://mc.kirsle.net/">Minecraft Server</a></li>
</ul> </ul>
<div class="k-section">Miscellany</div> <div class="k-section">Miscellany</div>
<ul> <ul>
<li>&#0187; <a href="/firered">Pok&#0233;mon Fuchsia City</a></li> <li>&#0187; <a href="/firered">Pok&#0233;mon Fuchsia City</a></li>
<li>&#0187; <a href="/msdos">DOS and Windows</a></li> <li>&#0187; <a href="/msdos">DOS and Windows</a></li>
<li>&#0187; <a href="/raspberrypi">Raspberry Pi</a></li> <li>&#0187; <a href="/raspberrypi">Raspberry Pi</a></li>
</ul> </ul>
<div class="k-section">Links</div> <div class="k-section">Links</div>
<ul> <ul>
<li>&#0187; <a href="https://www.google.com/+NoahPetherbridge">Google+</a></li> <li>&#0187; <a href="https://www.google.com/+NoahPetherbridge">Google+</a></li>
<li>&#0187; <a href="https://twitter.com/kirsle">Twitter</a></li> <li>&#0187; <a href="https://twitter.com/kirsle">Twitter</a></li>
<li>&#0187; <a href="https://myspace.com/kirsle">MySpace</a></li> <li>&#0187; <a href="https://myspace.com/kirsle">MySpace</a></li>
<li>&#0187; <a href="https://github.com/kirsle">Github</a></li> <li>&#0187; <a href="https://github.com/kirsle">Github</a></li>
<li>&#0187; <a href="http://search.cpan.org/~kirsle">CPAN</a></li> <li>&#0187; <a href="http://search.cpan.org/~kirsle">CPAN</a></li>
<li>&#0187; <a href="https://www.npmjs.org/~kirsle">npm</a></li> <li>&#0187; <a href="https://www.npmjs.org/~kirsle">npm</a></li>
</ul> </ul>
<br> <br>
{{ nav_ads() }} {{ nav_ads() }}
<br> <br>
<div class="k-section">Fan Club</div> <div class="k-section">Fan Club</div>
<ul> <ul>
{% if session["login"] %} {% if session["login"] %}
<li>&#0164; Hi, <big>{{ session["name"] }}</big></li> <li>&#0164; Hi, <big>{{ session["name"] }}</big></li>
{% if session["role"] == "admin" %} {% if session["role"] == "admin" %}
<li>&#0187; <a href="{{ url_for('admin.index') }}">Admin Center</a></li> <li>&#0187; <a href="{{ url_for('admin.index') }}">Admin Center</a></li>
{% endif %} {% endif %}
<li>&#0187; <a href="{{ url_for('blog.update') }}">Update Blog</a></li> <li>&#0187; <a href="{{ url_for('blog.update') }}">Update Blog</a></li>
{% if "impersonator" in session %} {% if "impersonator" in session %}
<li>&#0187; <a href="{{ url_for('admin.unimpersonate') }}">Unimpersonate</a></li> <li>&#0187; <a href="{{ url_for('admin.unimpersonate') }}">Unimpersonate</a></li>
{% endif %} {% endif %}
<li>&#0187; <a href="{{ url_for('account.logout') }}">Log Out</a> <li>&#0187; <a href="{{ url_for('account.logout') }}">Log Out</a>
{% else %} {% else %}
<li id="login-link">&#0187; <a href="{{ url_for('account.login') }}" class="login-link">Log In</a></li> <li id="login-link">&#0187; <a href="{{ url_for('account.login') }}" class="login-link">Log In</a></li>
{% endif %} {% endif %}
</ul> </ul>
<div id="login-inline" style="display: none"> <div id="login-inline" style="display: none">
<form action="{{ url_for('account.login') }}" method="POST"> <form action="{{ url_for('account.login') }}" method="POST">
<input type="hidden" name="token" value="{{ csrf_token() }}"> <input type="hidden" name="token" value="{{ csrf_token() }}">
<input type="hidden" name="url" value="{{ request.path }}"> <input type="hidden" name="url" value="{{ request.path }}">
<input type="text" class="form-control" size="4" name="username" style="display: inline; width: 45%"> <input type="text" class="form-control" size="4" name="username" style="display: inline; width: 45%">
<input type="password" class="form-control" size="4" name="password" style="display: inline; width: 45%"> <input type="password" class="form-control" size="4" name="password" style="display: inline; width: 45%">
<br> <br>
<button type="submit" class="btn btn-primary" style="width: 100%">Log In</button> <button type="submit" class="btn btn-primary" style="width: 100%">Log In</button>
</form> </form>
</div> </div>
<!-- <!--
<div class="k-section">Visitors</div> <div class="k-section">Visitors</div>
<ul> <ul>
<li>&#0164; <strong>Unique Visits:</strong><br> <li>&#0164; <strong>Unique Visits:</strong><br>
Today: tracking["unique_today"] <br> Today: tracking["unique_today"] <br>
Total: tracking["unique_total"] </li> Total: tracking["unique_total"] </li>
<li>&#0164; <strong>Total Hits:</strong><br> <li>&#0164; <strong>Total Hits:</strong><br>
Today: tracking["hits_today"] <br> Today: tracking["hits_today"] <br>
Total: tracking["hits_total"] </li> Total: tracking["hits_total"] </li>
<li>&#0164; <a href=" url_for('tracking.visitors') ">Visitor Details</a></li> <li>&#0164; <a href=" url_for('tracking.visitors') ">Visitor Details</a></li>
<li>&#0164; <a href=" url_for('tracking.referrers') ">Referring URLs</a></li> <li>&#0164; <a href=" url_for('tracking.referrers') ">Referring URLs</a></li>
</ul> </ul>
--> -->
<div class="center"> <div class="center">
<a href="https://www.python.org/" target="_blank"> <a href="https://www.python.org/" target="_blank">
<img src="/static/images/python.png" width="80" height="15" alt="Python powered"> <img src="/static/images/python.png" width="80" height="15" alt="Python powered">
</a><br> </a><br>
<a href="http://validator.w3.org/check?uri=referer"> <a href="http://validator.w3.org/check?uri=referer">
<img src="/static/images/html5.png" width="80" height="15" alt="W3C Valid HTML5"> <img src="/static/images/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br> </a><br>
<a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.kirsle.com/solar/screen.css"> <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.kirsle.com/solar/screen.css">
<img src="/static/images/css3.png" width="80" height="15" alt="W3C Valid CSS3"> <img src="/static/images/css3.png" width="80" height="15" alt="W3C Valid CSS3">
</a><p> </a><p>
<a href="https://www.digitalocean.com/?refcode=ea01734d3fc7" target="_blank"> <a href="https://www.digitalocean.com/?refcode=ea01734d3fc7" target="_blank">
<img src="/static/images/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean"> <img src="/static/images/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean">
</a> </a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -222,13 +222,13 @@
<script type="text/javascript" src="/js/offsite.js"></script> <script type="text/javascript" src="/js/offsite.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script> <script type="text/javascript" src="/js/bootstrap.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$(".login-link").click(function() { $(".login-link").click(function() {
$("#login-link").hide(); $("#login-link").hide();
$("#login-inline").show(500); $("#login-inline").show(500);
return false; return false;
}); });
}); });
</script> </script>
{% block scripts %}{% endblock %} {% block scripts %}{% endblock %}
@ -250,11 +250,11 @@
_paq.push(['trackPageView']); _paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']); _paq.push(['enableLinkTracking']);
(function() { (function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.kirsle.net/piwik/"; var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.kirsle.net/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]); _paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; 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); g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})(); })();
</script> </script>
<noscript><p><img src="https://www.kirsle.net/piwik/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript> <noscript><p><img src="https://www.kirsle.net/piwik/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>

View File

@ -42,10 +42,10 @@ These are some hardware drivers for DOS and Windows 3.x that are known to work
with VirtualBox's emulated hardware. Drivers include: with VirtualBox's emulated hardware. Drivers include:
<ul> <ul>
<li>CD-ROM driver</li> <li>CD-ROM driver</li>
<li>DOSIDLE to make MS-DOS stop consuming 100% CPU</li> <li>DOSIDLE to make MS-DOS stop consuming 100% CPU</li>
<li>WQGHLT to make Windows 3.x stop consuming 100% CPU</li> <li>WQGHLT to make Windows 3.x stop consuming 100% CPU</li>
<li>SoundBlaster 16 as a CD image (requires the CD-ROM driver)</li> <li>SoundBlaster 16 as a CD image (requires the CD-ROM driver)</li>
</ul> </ul>
&#0164; <a href="download?project=DOS&file=DOS-Drivers.zip">Download</a> (.zip, 4.0 MB)<p> &#0164; <a href="download?project=DOS&file=DOS-Drivers.zip">Download</a> (.zip, 4.0 MB)<p>
@ -55,9 +55,9 @@ with VirtualBox's emulated hardware. Drivers include:
For tips, tricks, or to leave comments, see the relevant blog post "<a href="/blog/kirsle/ms-dos-and-windows-3-1">MS-DOS and Windows 3.1</a>". The comments on that blog post are shared to this page as well (so comments on either page show up in both places).<p> For tips, tricks, or to leave comments, see the relevant blog post "<a href="/blog/kirsle/ms-dos-and-windows-3-1">MS-DOS and Windows 3.1</a>". The comments on that blog post are shared to this page as well (so comments on either page show up in both places).<p>
{{ include_page("comment.partial_index", {{ include_page("comment.partial_index",
thread="blog-42", thread="blog-42",
subject="MS-DOS", subject="MS-DOS",
header=False, header=False,
) | safe }} ) | safe }}
{% endblock %} {% endblock %}

View File

@ -5,196 +5,196 @@
<h1>Perl CyanChat Client</h1> <h1>Perl CyanChat Client</h1>
<ul> <ul>
<li><a href="#intro">Project Description</a></li> <li><a href="#intro">Project Description</a></li>
<li><a href="#screenshots">Screenshots</a></li> <li><a href="#screenshots">Screenshots</a></li>
<li><a href="#license">License</a></li> <li><a href="#license">License</a></li>
<li><a href="#downloads">Downloads</a></li> <li><a href="#downloads">Downloads</a></li>
</ul> </ul>
<a name="intro"></a> <a name="intro"></a>
<img src="projects/PCCC/logo.png" alt="PCCC" width="400" height="90"> <img src="projects/PCCC/logo.png" alt="PCCC" width="400" height="90">
<h2>Project Description</h2> <h2>Project Description</h2>
<strong>Perl CyanChat Client</strong> (PCCC) is a chat client for <strong>Perl CyanChat Client</strong> (PCCC) is a chat client for
<em>CyanChat</em>, the official chat room of <em>CyanChat</em>, the official chat room of
<a href="http://www.cyanworlds.com/">Cyan Worlds, Inc.</a>.<p> <a href="http://www.cyanworlds.com/">Cyan Worlds, Inc.</a>.<p>
This project is now hosted on Github: This project is now hosted on Github:
<a href="https://github.com/kirsle/PCCC">https://github.com/kirsle/PCCC</a> <a href="https://github.com/kirsle/PCCC">https://github.com/kirsle/PCCC</a>
<h3>Features</h3> <h3>Features</h3>
Here's a brief list of some of PCCC's features: Here's a brief list of some of PCCC's features:
<ul> <ul>
<li>Full support of Version 1 of the CyanChat protocol.</li> <li>Full support of Version 1 of the CyanChat protocol.</li>
<li>Save the conversation in XHTML format, keeping colors intact.</li> <li>Save the conversation in XHTML format, keeping colors intact.</li>
<li>Configurable "default nickname", and the ability to automatically <li>Configurable "default nickname", and the ability to automatically
sign you into the chat when you connect.</li> sign you into the chat when you connect.</li>
<li>Configurable CC host and port, automatically connect on startup, <li>Configurable CC host and port, automatically connect on startup,
and reconnect when disconnected.</li> and reconnect when disconnected.</li>
<li>Configurable colors, both for the main window and for the chat <li>Configurable colors, both for the main window and for the chat
message and nickname colors.</li> message and nickname colors.</li>
<li>Configurable "echo" color, so that your own nickname in chat will <li>Configurable "echo" color, so that your own nickname in chat will
show up in a different color, so you can quickly distinguish show up in a different color, so you can quickly distinguish
your messages from everyone else's.</li> your messages from everyone else's.</li>
<li>Clickable hyperlinks when they appear in chat.</li> <li>Clickable hyperlinks when they appear in chat.</li>
<li>Support for IRC-style "/me" actions.</li> <li>Support for IRC-style "/me" actions.</li>
<li>Messages in the format <b>*...*</b> can be displayed as "/me" actions <li>Messages in the format <b>*...*</b> can be displayed as "/me" actions
automatically.</li> automatically.</li>
<li>Sound effects!</li> <li>Sound effects!</li>
<li>Private message windows so you can chat privately in an <li>Private message windows so you can chat privately in an
Instant Messenger style.</li> Instant Messenger style.</li>
<li>Option to ignore private messages from ChatServer (useful when <li>Option to ignore private messages from ChatServer (useful when
Cho goes down and you need to use the debug port)</li> Cho goes down and you need to use the debug port)</li>
<li>Option to automatically ignore users who ignore you.</li> <li>Option to automatically ignore users who ignore you.</li>
<li>Option to notify you when users ignore you.</li> <li>Option to notify you when users ignore you.</li>
<li>Option to send a "real" ignore command to the server when you <li>Option to send a "real" ignore command to the server when you
ignore a user (as opposed to a local ignore).</li> ignore a user (as opposed to a local ignore).</li>
<li>Options to reverse the orientation of the chat client, so that <li>Options to reverse the orientation of the chat client, so that
new messages appear on the bottom, and the input text box new messages appear on the bottom, and the input text box
is at the bottom (like most traditional chat programs).</li> is at the bottom (like most traditional chat programs).</li>
<li>A full built-in documentation system.</li> <li>A full built-in documentation system.</li>
<li>Built-in packet viewer with the Debug Window / Console.</li> <li>Built-in packet viewer with the Debug Window / Console.</li>
<li>A dialog to send raw commands to the CC server.</li> <li>A dialog to send raw commands to the CC server.</li>
</ul> </ul>
<a name="screenshots"></a> <a name="screenshots"></a>
<h2 style="margin-top: 0px">Screenshots</h2> <h2 style="margin-top: 0px">Screenshots</h2>
<table border="0" cellspacing="0" cellpadding="0" style="margin-left: auto; margin-right: auto"> <table border="0" cellspacing="0" cellpadding="0" style="margin-left: auto; margin-right: auto">
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="projects/PCCC/ss07.png"> <a href="projects/PCCC/ss07.png">
<img src="projects/PCCC/t_ss07.png" width="324" height="256" alt="Screenshot"> <img src="projects/PCCC/t_ss07.png" width="324" height="256" alt="Screenshot">
</a><br> </a><br>
PCCC 3.0 running on Windows 7 Beta. PCCC 3.0 running on Windows 7 Beta.
</td> </td>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="projects/PCCC/ss08.png"> <a href="projects/PCCC/ss08.png">
<img src="projects/PCCC/t_ss08.png" width="324" height="256" alt="Screenshot"> <img src="projects/PCCC/t_ss08.png" width="324" height="256" alt="Screenshot">
</a><br> </a><br>
Ignore List preferences on Windows 7 Beta. Ignore List preferences on Windows 7 Beta.
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
&nbsp;<br> &nbsp;<br>
<a href="projects/PCCC/ss06.png"> <a href="projects/PCCC/ss06.png">
<img src="projects/PCCC/t_ss06.png" width="324" height="269" alt="Screenshot"> <img src="projects/PCCC/t_ss06.png" width="324" height="269" alt="Screenshot">
</a><br> </a><br>
Linux: PCCC connected to a local CyanChat server,<br> Linux: PCCC connected to a local CyanChat server,<br>
demonstrating the colors of Cyan Admins and<br> demonstrating the colors of Cyan Admins and<br>
Special Guests. Special Guests.
</td> </td>
<td align="center" valign="top"> <td align="center" valign="top">
&nbsp;<br> &nbsp;<br>
<a href="projects/PCCC/ss05.png"> <a href="projects/PCCC/ss05.png">
<img src="projects/PCCC/t_ss05.png" width="324" height="240" alt="Screenshot"> <img src="projects/PCCC/t_ss05.png" width="324" height="240" alt="Screenshot">
</a><br> </a><br>
PCCC running on Mac OS X using X Windows.<br> PCCC running on Mac OS X using X Windows.<br>
<small>Screenshot credit: Amonre</small> <small>Screenshot credit: Amonre</small>
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
&nbsp;<br> &nbsp;<br>
<a href="projects/PCCC/ss04.png"> <a href="projects/PCCC/ss04.png">
<img src="projects/PCCC/t_ss04.png" width="324" height="270" alt="Screenshot"> <img src="projects/PCCC/t_ss04.png" width="324" height="270" alt="Screenshot">
</a><br> </a><br>
Linux: A tab from the Preferences window. Linux: A tab from the Preferences window.
</td> </td>
<td align="center" valign="top"> <td align="center" valign="top">
&nbsp;<br> &nbsp;<br>
<a href="projects/PCCC/ss03.png"> <a href="projects/PCCC/ss03.png">
<img src="projects/PCCC/t_ss03.png" width="324" height="240" alt="Screenshot"> <img src="projects/PCCC/t_ss03.png" width="324" height="240" alt="Screenshot">
</a><br> </a><br>
Linux: PCCC in action. Linux: PCCC in action.
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
&nbsp;<br> &nbsp;<br>
<a href="projects/PCCC/ss02.gif"> <a href="projects/PCCC/ss02.gif">
<img src="projects/PCCC/t_ss02.gif" width="324" height="257" alt="Screenshot"> <img src="projects/PCCC/t_ss02.gif" width="324" height="257" alt="Screenshot">
</a><br> </a><br>
Windows XP: PCCC with a couple dialog windows open. Windows XP: PCCC with a couple dialog windows open.
</td> </td>
<td align="center" valign="top"> <td align="center" valign="top">
&nbsp;<br> &nbsp;<br>
<a href="projects/PCCC/ss01.gif"> <a href="projects/PCCC/ss01.gif">
<img src="projects/PCCC/t_ss01.gif" width="324" height="257" alt="Screenshot"> <img src="projects/PCCC/t_ss01.gif" width="324" height="257" alt="Screenshot">
</a><br> </a><br>
Windows XP: PCCC 2.0's main window. Windows XP: PCCC 2.0's main window.
</td> </td>
</tr> </tr>
</table> </table>
<a name="license"></a> <a name="license"></a>
<h2 style="margin-top: 0px">Software License</h2> <h2 style="margin-top: 0px">Software License</h2>
<pre> Perl CyanChat Client <pre> Perl CyanChat Client
Copyright (C) 2013 Noah Petherbridge Copyright (C) 2013 Noah Petherbridge
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or the Free Software Foundation; either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License along You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</pre> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</pre>
<a name="downloads"> <a name="downloads">
<h2 style="margin-top: 0px">Downloads</h2> <h2 style="margin-top: 0px">Downloads</h2>
It's recommended that you download the latest version of this software It's recommended that you download the latest version of this software
as listed below. To download older versions and source code, skip to as listed below. To download older versions and source code, skip to
the next section. the next section.
<h3>Windows Executable</h3> <h3>Windows Executable</h3>
<blockquote> <blockquote>
<img src="images/dos.png" width="32" height="32" alt="Win32" style="vertical-align: middle"> <img src="images/dos.png" width="32" height="32" alt="Win32" style="vertical-align: middle">
<a href="/download?type=bin&amp;project=PCCC&amp;file=PCCC-3.0_bin.zip"> <a href="/download?type=bin&amp;project=PCCC&amp;file=PCCC-3.0_bin.zip">
Download Perl CyanChat Client</a><br> Download Perl CyanChat Client</a><br>
Version 3.0 - 2007/06/21<br> Version 3.0 - 2007/06/21<br>
<small>ZIP format/2.3 MB</small> <small>ZIP format/2.3 MB</small>
</blockquote> </blockquote>
<h3>Linux Binary</h3> <h3>Linux Binary</h3>
<blockquote> <blockquote>
<img src="images/exec.png" width="32" height="32" alt="Linux" style="vertical-align: middle"> <img src="images/exec.png" width="32" height="32" alt="Linux" style="vertical-align: middle">
<a href="/download?type=bin&amp;project=PCCC&amp;file=PCCC-3.0_linux.tar.gz"> <a href="/download?type=bin&amp;project=PCCC&amp;file=PCCC-3.0_linux.tar.gz">
Download Perl CyanChat Client</a><br> Download Perl CyanChat Client</a><br>
Version 3.0 - 2007/06/21<br> Version 3.0 - 2007/06/21<br>
<small>TAR.GZ format/4.7 MB</small> <small>TAR.GZ format/4.7 MB</small>
</blockquote> </blockquote>
<h2>All Distributions</h2> <h2>All Distributions</h2>
The following are all the distributions available for this software, The following are all the distributions available for this software,
starting with the most recent. Source code is also available for all starting with the most recent. Source code is also available for all
versions.<p> versions.<p>
<table border="0" cellspacing="2" cellpadding="2" class="distro"> <table border="0" cellspacing="2" cellpadding="2" class="distro">
<tr> <tr>
<th>Release</th> <th>Release</th>

View File

@ -28,10 +28,10 @@ export XXL_XMODMAP_DISABLE=1
/usr/bin/xfce4-session</pre> /usr/bin/xfce4-session</pre>
<ul> <ul>
<li>Use <code>vncpasswd</code> to set a password.</li> <li>Use <code>vncpasswd</code> to set a password.</li>
<li>Use <code>vncserver</code> to start a VNC server (defaults to display :1 <li>Use <code>vncserver</code> to start a VNC server (defaults to display :1
for the first server)</li> for the first server)</li>
<li>Use <code>vncserver -kill :1</code> to kill a server. <li>Use <code>vncserver -kill :1</code> to kill a server.
</ul> </ul>
<h2>Pi User Groups</h2> <h2>Pi User Groups</h2>
@ -40,17 +40,17 @@ If you add other users to the system, you'll probably want them to be members of
all the groups the pi user is part of. So... all the groups the pi user is part of. So...
<ul> <ul>
<li>adm</li> <li>adm</li>
<li>dialout</li> <li>dialout</li>
<li>cdrom</li> <li>cdrom</li>
<li>sudo</li> <li>sudo</li>
<li>audio</li> <li>audio</li>
<li>video</li> <li>video</li>
<li>plugdev</li> <li>plugdev</li>
<li>games</li> <li>games</li>
<li>users</li> <li>users</li>
<li>netdev</li> <li>netdev</li>
<li>input</li> <li>input</li>
</ul> </ul>
<pre>$ sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input <ins>kirsle</ins></pre> <pre>$ sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input <ins>kirsle</ins></pre>
@ -79,8 +79,8 @@ You'll need to do this <em>before</em> starting the VNC server. If you've alread
started one, shut it down and restart it. started one, shut it down and restart it.
{{ include_page("comment.partial_index", {{ include_page("comment.partial_index",
thread="article-raspberrypi", thread="article-raspberrypi",
subject="Raspberry Pi", subject="Raspberry Pi",
) | safe }} ) | safe }}
{% endblock %} {% endblock %}

View File

@ -8,121 +8,121 @@ This page contains some of my better 3D renderings. Most of these images were
modeled more or less in AutoCAD 2006 and rendered in 3DS Max 8.<p> modeled more or less in AutoCAD 2006 and rendered in 3DS Max 8.<p>
<table border="0" cellspacing="10" cellpadding="0"> <table border="0" cellspacing="10" cellpadding="0">
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="/creativity/rendered/kawar.jpg"> <a href="/creativity/rendered/kawar.jpg">
<img src="/creativity/rendered/kawar-thumb.jpg" <img src="/creativity/rendered/kawar-thumb.jpg"
width="300" height="225" alt="Kanian/Azulian War" class="portrait"> width="300" height="225" alt="Kanian/Azulian War" class="portrait">
</a><br> </a><br>
Resolution: 800x600 Resolution: 800x600
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<h2 class="top">Kanian/Azulian War</h2> <h2 class="top">Kanian/Azulian War</h2>
I made this in one of my high school CAD classes. It's I made this in one of my high school CAD classes. It's
a 3D rendering of a scene from the Kanian/Azulian War. a 3D rendering of a scene from the Kanian/Azulian War.
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="/creativity/rendered/kanian.jpg"> <a href="/creativity/rendered/kanian.jpg">
<img src="/creativity/rendered/kanian-thumb.jpg" <img src="/creativity/rendered/kanian-thumb.jpg"
width="300" height="225" alt="Kanians" class="portrait"> width="300" height="225" alt="Kanians" class="portrait">
</a><br> </a><br>
Resolution: 800x600 Resolution: 800x600
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<h2 class="top">The Kanians</h2> <h2 class="top">The Kanians</h2>
I also made this in one of my high school CAD classes. I also made this in one of my high school CAD classes.
It's just an artsy picture of the Kanians, showing the It's just an artsy picture of the Kanians, showing the
evil, neutral, and angelic varieties. evil, neutral, and angelic varieties.
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="/creativity/rendered/bob.jpg"> <a href="/creativity/rendered/bob.jpg">
<img src="/creativity/rendered/bob-thumb.jpg" <img src="/creativity/rendered/bob-thumb.jpg"
width="300" height="225" alt="Bob-Omb Battlefield" class="portrait"> width="300" height="225" alt="Bob-Omb Battlefield" class="portrait">
</a><br> </a><br>
Resolution: 800x600 Resolution: 800x600
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<h2 class="top">Bob-Omb Battlefield</h2> <h2 class="top">Bob-Omb Battlefield</h2>
This originally started out to be just a gang of shiny This originally started out to be just a gang of shiny
Bob-Ombs. The next idea was to put them on a bright green Bob-Ombs. The next idea was to put them on a bright green
Mario64-style terrain, and then it was only natural to Mario64-style terrain, and then it was only natural to
create some of the other Mario baddies and throw them in create some of the other Mario baddies and throw them in
there. Those include the Chain Chomp and Goombas, and also there. Those include the Chain Chomp and Goombas, and also
a life mushroom and a warp pipe. a life mushroom and a warp pipe.
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="/creativity/rendered/hotel.jpg"> <a href="/creativity/rendered/hotel.jpg">
<img src="/creativity/rendered/hotel-thumb.jpg" <img src="/creativity/rendered/hotel-thumb.jpg"
width="300" height="225" alt="Hotel Suite" class="portrait"> width="300" height="225" alt="Hotel Suite" class="portrait">
</a><br> </a><br>
Resolution: 720x540 Resolution: 720x540
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<h2 class="top">Hotel Suite</h2> <h2 class="top">Hotel Suite</h2>
I made this for my MITES project in my senior year CAD I made this for my MITES project in my senior year CAD
class. It got me 1st place in the regional competition class. It got me 1st place in the regional competition
and 4th in the state competition, and also a "Best of and 4th in the state competition, and also a "Best of
Architectural Award" on the regional. I didn't even take Architectural Award" on the regional. I didn't even take
architectural CAD, which makes it that much cooler that architectural CAD, which makes it that much cooler that
I got that award. I got that award.
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="/creativity/rendered/battlefield.jpg"> <a href="/creativity/rendered/battlefield.jpg">
<img src="/creativity/rendered/battlefield-thumb.jpg" <img src="/creativity/rendered/battlefield-thumb.jpg"
width="300" height="225" alt="Virtual Battlefield" class="portrait"> width="300" height="225" alt="Virtual Battlefield" class="portrait">
</a><br> </a><br>
Resolution: 1024x768 Resolution: 1024x768
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<h2 class="top">Virtual Battlefield</h2> <h2 class="top">Virtual Battlefield</h2>
I made this one just for fun. It's a virtual battlefield I made this one just for fun. It's a virtual battlefield
being "materialized" into existence. You can even see some being "materialized" into existence. You can even see some
of the wire frame in the parts that hadn't been materialized of the wire frame in the parts that hadn't been materialized
yet. It's kinda <em>Code Lyoko</em> style. yet. It's kinda <em>Code Lyoko</em> style.
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="/creativity/rendered/island.jpg"> <a href="/creativity/rendered/island.jpg">
<img src="/creativity/rendered/island-thumb.jpg" <img src="/creativity/rendered/island-thumb.jpg"
width="300" height="225" alt="Island Invasion" class="portrait"> width="300" height="225" alt="Island Invasion" class="portrait">
</a><br> </a><br>
Resolution: 1024x768 Resolution: 1024x768
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<h2 class="top">Island Invasion</h2> <h2 class="top">Island Invasion</h2>
During my first quarter of college, I had this really lame During my first quarter of college, I had this really lame
class called <em>Problem Solving</em>. During a particularly class called <em>Problem Solving</em>. During a particularly
slow day, I discovered the school computers had AutoCAD and slow day, I discovered the school computers had AutoCAD and
3DS Max, and I created and rendered this drawing before the 3DS Max, and I created and rendered this drawing before the
end of class that day. end of class that day.
</td> </td>
</tr> </tr>
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<a href="/creativity/rendered/nupiter.jpg"> <a href="/creativity/rendered/nupiter.jpg">
<img src="/creativity/rendered/nupiter-thumb.jpg" <img src="/creativity/rendered/nupiter-thumb.jpg"
width="300" height="225" alt="Sunrise on Nupiter"> width="300" height="225" alt="Sunrise on Nupiter">
</a><br> </a><br>
Resolution: 1024x768 Resolution: 1024x768
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<h2 class="top">Sunrise on Nupiter</h2> <h2 class="top">Sunrise on Nupiter</h2>
This one was actually drawn entirely in Photoshop, but it This one was actually drawn entirely in Photoshop, but it
looks like it would fit in well with these other 3D renderings. looks like it would fit in well with these other 3D renderings.
The idea was to make a planetary kind of picture from the view The idea was to make a planetary kind of picture from the view
of some unknown planet. The planet itself was taken from a desert of some unknown planet. The planet itself was taken from a desert
scene (with any plant life photoshopped out). scene (with any plant life photoshopped out).
</td> </td>
</tr> </tr>
</table> </table>
{% endblock %} {% endblock %}

View File

@ -5,113 +5,113 @@
<h1>RiveScript</h1> <h1>RiveScript</h1>
<ul> <ul>
<li><a href="#intro">Project Description</a></li> <li><a href="#intro">Project Description</a></li>
<li><a href="#site">Project Website</a></li> <li><a href="#site">Project Website</a></li>
<li><a href="#history">History</a></li> <li><a href="#history">History</a></li>
</ul> </ul>
<a name="intro"></a> <a name="intro"></a>
<img src="projects/RiveScript/logo.png" alt="RiveScript" width="400" height="90"> <img src="projects/RiveScript/logo.png" alt="RiveScript" width="400" height="90">
<h2>Project Description</h2> <h2>Project Description</h2>
<strong>RiveScript</strong> is a text-based scripting language for giving responses to chatterbots. <strong>RiveScript</strong> is a text-based scripting language for giving responses to chatterbots.
The project was started in late 2004 and tentatively named <em>AiChaos Alpha</em>. It has a simple, The project was started in late 2004 and tentatively named <em>AiChaos Alpha</em>. It has a simple,
easy to learn format and it could be argued that it's more powerful than AIML (Artificial Intelligence easy to learn format and it could be argued that it's more powerful than AIML (Artificial Intelligence
Markup Language).<p> Markup Language).<p>
In short, it's a scripting language used to match a response to a message provided by the human.<p> In short, it's a scripting language used to match a response to a message provided by the human.<p>
In its simplest form, RiveScript code might look like this: In its simplest form, RiveScript code might look like this:
<pre>+ hello bot <pre>+ hello bot
- Hello, human!</pre> - Hello, human!</pre>
And can get into some more complicated things like this: And can get into some more complicated things like this:
<pre>+ my name is * <pre>+ my name is *
* &lt;get name&gt; == undefined =&gt; &lt;set name=&lt;formal&gt;&gt;Nice to meet you, &lt;get name&gt;&gt;! * &lt;get name&gt; == undefined =&gt; &lt;set name=&lt;formal&gt;&gt;Nice to meet you, &lt;get name&gt;&gt;!
* &lt;get name&gt; == &lt;formal&gt; =&gt; I know, you've told me your name before. * &lt;get name&gt; == &lt;formal&gt; =&gt; I know, you've told me your name before.
* &lt;get name&gt; == &lt;bot name&gt; =&gt; &lt;set name=&lt;formal&gt;&gt;Wow, we have the same name! * &lt;get name&gt; == &lt;bot name&gt; =&gt; &lt;set name=&lt;formal&gt;&gt;Wow, we have the same name!
* &lt;get name&gt; != &lt;formal&gt; =&gt; &lt;set name=&lt;formal&gt;&gt;Did you get a name change?</pre> * &lt;get name&gt; != &lt;formal&gt; =&gt; &lt;set name=&lt;formal&gt;&gt;Did you get a name change?</pre>
<a name="site"></a> <a name="site"></a>
<h2>Project Website</h2> <h2>Project Website</h2>
This project's official website is <a href="http://www.rivescript.com/">RiveScript.com</a>. This project's official website is <a href="http://www.rivescript.com/">RiveScript.com</a>.
Go there to learn more, download bots and RiveScript interpreters, and join the forum.<p> Go there to learn more, download bots and RiveScript interpreters, and join the forum.<p>
For my Perl RiveScript library, the latest version can always be downloaded from CPAN:<br> For my Perl RiveScript library, the latest version can always be downloaded from CPAN:<br>
<a href="http://search.cpan.org/perldoc?RiveScript">http://search.cpan.org/perldoc?RiveScript</a> <a href="http://search.cpan.org/perldoc?RiveScript">http://search.cpan.org/perldoc?RiveScript</a>
<a name="history"></a> <a name="history"></a>
<h2>History</h2> <h2>History</h2>
<h3>A Brief Introduction to Bots</h3> <h3>A Brief Introduction to Bots</h3>
In short, chatterbots are programs that communicate with humans using natural language. Often, In short, chatterbots are programs that communicate with humans using natural language. Often,
chatterbots will communicate with humans over a common interface, such as an instant messenger. chatterbots will communicate with humans over a common interface, such as an instant messenger.
I got into bot programming around the years of 2000 and 2001, starting out with RunABot.com, where I got into bot programming around the years of 2000 and 2001, starting out with RunABot.com, where
many other would-be botmasters start. RunABot used AIML (Artificial Intelligence Markup Language) many other would-be botmasters start. RunABot used AIML (Artificial Intelligence Markup Language)
as their method of programming replies for the bots.<p> as their method of programming replies for the bots.<p>
Due to RunABot's restrictions and the fact that free bot accounts would suffer anytime there was Due to RunABot's restrictions and the fact that free bot accounts would suffer anytime there was
a server problem, I found my way to the website of the <a href="http://www.alicebot.org/">ALICE A.I. a server problem, I found my way to the website of the <a href="http://www.alicebot.org/">ALICE A.I.
Foundation</a>, the home of AIML and the chatterbot that made it famous: Alice. I downloaded AliceBot Foundation</a>, the home of AIML and the chatterbot that made it famous: Alice. I downloaded AliceBot
Program D, a Java-based AIML robot that worked on AIM and IRC. Immediately it was much more responsive Program D, a Java-based AIML robot that worked on AIM and IRC. Immediately it was much more responsive
and fast than RunABot, but at a price: it had no built-in rate limit circumvention. The bot I ran from and fast than RunABot, but at a price: it had no built-in rate limit circumvention. The bot I ran from
Program D wasn't popular enough that it would violate its rate limits by sending its messages instantly Program D wasn't popular enough that it would violate its rate limits by sending its messages instantly
to its users, but it was a concern of mine. Also, it had no way of defending itself against the to its users, but it was a concern of mine. Also, it had no way of defending itself against the
infamous Warning system that AIM has. infamous Warning system that AIM has.
<h3>Programming My Own</h3> <h3>Programming My Own</h3>
Due to AliceBot Program D's disregard to the worrisome aspects of the AIM protocol, and because I Due to AliceBot Program D's disregard to the worrisome aspects of the AIM protocol, and because I
wanted to have a bot for MSN Messenger, I googled for MSN bots and found my way to WiredBots.com, wanted to have a bot for MSN Messenger, I googled for MSN bots and found my way to WiredBots.com,
where they had simple Perl bot templates for AIM and MSN bots. These templates were very simplistic where they had simple Perl bot templates for AIM and MSN bots. These templates were very simplistic
and they were only programmed to send a random quote from a text file in response to all human and they were only programmed to send a random quote from a text file in response to all human
messages. I also had never really dealt with Perl very much before this. I had mainly only worked messages. I also had never really dealt with Perl very much before this. I had mainly only worked
with the more simplistic languages of JavaScript and HTML.<p> with the more simplistic languages of JavaScript and HTML.<p>
I learned a lot about Perl just by tinkering with these bot templates. After I got a good handle I learned a lot about Perl just by tinkering with these bot templates. After I got a good handle
on the language, I started releasing my own bot templates based on the WiredBots code, before on the language, I started releasing my own bot templates based on the WiredBots code, before
rewriting some of my own templates from scratch. The one thing I missed about my past bot adventures rewriting some of my own templates from scratch. The one thing I missed about my past bot adventures
that I couldn't get from Perl: the AIML language of Alice bots. that I couldn't get from Perl: the AIML language of Alice bots.
<h3>Alternatives to AIML</h3> <h3>Alternatives to AIML</h3>
Somebody made a Perl-based Alice bot once. It was called Program V, and as of now it's impossible Somebody made a Perl-based Alice bot once. It was called Program V, and as of now it's impossible
to find anymore. Nobody I know could ever figure out how to make this program work, though. And its to find anymore. Nobody I know could ever figure out how to make this program work, though. And its
AIML modules were difficult to port. Alice bot programs tend to be complete all-in-one bots. I only AIML modules were difficult to port. Alice bot programs tend to be complete all-in-one bots. I only
wanted the module that parses AIML, but I couldn't separate that module from the other ones that wanted the module that parses AIML, but I couldn't separate that module from the other ones that
managed the configuration and other intricate details that don't apply to what I wanted it for.<p> managed the configuration and other intricate details that don't apply to what I wanted it for.<p>
Ultimately giving up with Program V's code, and failing numerous times with XML parsers trying to Ultimately giving up with Program V's code, and failing numerous times with XML parsers trying to
create my own, I had little other choice than to create something new. Something easier for Perl create my own, I had little other choice than to create something new. Something easier for Perl
to parse. I made a couple of my own XML-based languages, which failed. A couple other attempts later, to parse. I made a couple of my own XML-based languages, which failed. A couple other attempts later,
and I ended up with a rather simple concept: creating a text-based language driven by command characters and I ended up with a rather simple concept: creating a text-based language driven by command characters
and lines of text. The basic idea was that the language should look like this: and lines of text. The basic idea was that the language should look like this:
<pre>+ hello bot <pre>+ hello bot
- Hello human!</pre> - Hello human!</pre>
A plus for the trigger to match against the human's message, and a minus for the bot's response. A plus for the trigger to match against the human's message, and a minus for the bot's response.
Following that format I added a few more commands to enable it to handle conditionals, redirections, Following that format I added a few more commands to enable it to handle conditionals, redirections,
topics, and a lot of the other cool things that AIML can do. topics, and a lot of the other cool things that AIML can do.
<h3>Chatbot::Alpha</h3> <h3>Chatbot::Alpha</h3>
The first incarnation of my chatterbot scripting language was called <em>AiChaos Alpha</em>, The first incarnation of my chatterbot scripting language was called <em>AiChaos Alpha</em>,
where AiChaos was the name of my website devoted to bots and Alpha was the name of the scripting where AiChaos was the name of my website devoted to bots and Alpha was the name of the scripting
language itself. I chose the Chatbot:: namespace because it's difficult to get a root level namespace language itself. I chose the Chatbot:: namespace because it's difficult to get a root level namespace
on <a href="http://www.cpan.org/">CPAN</a>, and because Chatbot::Eliza was looking pretty lonely there, on <a href="http://www.cpan.org/">CPAN</a>, and because Chatbot::Eliza was looking pretty lonely there,
being the only module under the Chatbot space.<p> being the only module under the Chatbot space.<p>
After working on Chatbot::Alpha for a while, it grew to be more powerful than the simple idea that After working on Chatbot::Alpha for a while, it grew to be more powerful than the simple idea that
started it, however it wasn't being programmed very efficiently. It wasn't as powerful as AIML yet, started it, however it wasn't being programmed very efficiently. It wasn't as powerful as AIML yet,
and the logic of the program didn't allow for complicated things that would rival the &lt;that&gt; tag and the logic of the program didn't allow for complicated things that would rival the &lt;that&gt; tag
from AIML. from AIML.
<pre>&lt;!-- This is an example of the &lt;that&gt; tag in AIML --&gt; <pre>&lt;!-- This is an example of the &lt;that&gt; tag in AIML --&gt;
&lt;category&gt; &lt;category&gt;
&lt;pattern&gt;ASK ME A QUESTION&lt;/pattern&gt; &lt;pattern&gt;ASK ME A QUESTION&lt;/pattern&gt;
@ -133,48 +133,48 @@ What is its name?
&lt;/template&gt; &lt;/template&gt;
&lt;/category&gt;</pre> &lt;/category&gt;</pre>
<h3>Chatbot::RiveScript</h3> <h3>Chatbot::RiveScript</h3>
Since I programmed myself into a corner with Alpha, I changed its name to RiveScript and Since I programmed myself into a corner with Alpha, I changed its name to RiveScript and
started over from scratch. The syntax was still very similar, but RiveScript was rebuilt started over from scratch. The syntax was still very similar, but RiveScript was rebuilt
from the ground up, this time with Alpha's limitations in mind. It wasn't very long before from the ground up, this time with Alpha's limitations in mind. It wasn't very long before
RiveScript not only matched the features of AIML, but surpassed AIML in multiple areas. RiveScript not only matched the features of AIML, but surpassed AIML in multiple areas.
After it became quite a large program, I submitted a request to CPAN to have a root-level After it became quite a large program, I submitted a request to CPAN to have a root-level
name space. The CPAN admins accepted my request and gave me the root-level name space name space. The CPAN admins accepted my request and gave me the root-level name space
of RiveScript. And thus, the module went from being "Chatbot::RiveScript" to simply "RiveScript". of RiveScript. And thus, the module went from being "Chatbot::RiveScript" to simply "RiveScript".
<h3>RiveScript 1.00</h3> <h3>RiveScript 1.00</h3>
The module started at version 0.01 as Chatbot::RiveScript, and I wanted to make sure it The module started at version 0.01 as Chatbot::RiveScript, and I wanted to make sure it
was perfect before calling it 1.00. After about a year of development, it was about as was perfect before calling it 1.00. After about a year of development, it was about as
perfect as it was going to get. I released the 1.00 version. Years went by before new bugs perfect as it was going to get. I released the 1.00 version. Years went by before new bugs
were reported, and it eventually went to 1.02 and stayed there. The chatterbot scene was were reported, and it eventually went to 1.02 and stayed there. The chatterbot scene was
drying up by now. The once lively forum of <a href="http://www.bot-depot.com/">Bot-Depot</a> drying up by now. The once lively forum of <a href="http://www.bot-depot.com/">Bot-Depot</a>
was losing all its best members. Nobody was actively developing bots anymore, and all that was losing all its best members. Nobody was actively developing bots anymore, and all that
was left were the occasional newbies asking questions that nobody might answer.<p> was left were the occasional newbies asking questions that nobody might answer.<p>
Thus, I lost interest in furthering the development of RiveScript. That was in 2005. Now, Thus, I lost interest in furthering the development of RiveScript. That was in 2005. Now,
three years later, somebody in a different forum posted a thread about wanting to learn three years later, somebody in a different forum posted a thread about wanting to learn
Perl. I asked why (for CGI or for offline programming) so I could link him to the appropriate Perl. I asked why (for CGI or for offline programming) so I could link him to the appropriate
tutorial, and he said he wanted to learn it because he heard he could program bots with it. tutorial, and he said he wanted to learn it because he heard he could program bots with it.
That inspired me to dust off the old RiveScript module and fix it up.<p> That inspired me to dust off the old RiveScript module and fix it up.<p>
<h3>RiveScript 2.00</h3> <h3>RiveScript 2.00</h3>
So, I registered the domain name <a href="http://www.rivescript.com/">RiveScript.com</a>, So, I registered the domain name <a href="http://www.rivescript.com/">RiveScript.com</a>,
which is now the "RiveScript Headquarters". I decided I would also come up with a new standard which is now the "RiveScript Headquarters". I decided I would also come up with a new standard
for RiveScript. Learning from the limitations of the old version and how it relied on Perl for RiveScript. Learning from the limitations of the old version and how it relied on Perl
so much, the new standard was written with multiple implementations in mind. I published so much, the new standard was written with multiple implementations in mind. I published
a "RiveScript 2.00 Working Draft", a document describing the standards of the RiveScript a "RiveScript 2.00 Working Draft", a document describing the standards of the RiveScript
language from an implementation-agnostic point of view. It describes how RiveScript itself language from an implementation-agnostic point of view. It describes how RiveScript itself
should work -- it's up to the programmer to implement it. The new standards raised the bar should work -- it's up to the programmer to implement it. The new standards raised the bar
over what the old language was capable of, and I began development of a new RiveScript over what the old language was capable of, and I began development of a new RiveScript
module to meet these new standards.<p> module to meet these new standards.<p>
Development of a RiveScript 2.00-compliant module is still in development, but it's getting Development of a RiveScript 2.00-compliant module is still in development, but it's getting
close to completion. I'm trying to learn C++ with the goal of eventually making a RiveScript close to completion. I'm trying to learn C++ with the goal of eventually making a RiveScript
interpreter in that, which could be compiled into a DLL or Shared Object that other programs interpreter in that, which could be compiled into a DLL or Shared Object that other programs
could utilize, or provide the source code to allow it to be directly compiled in with other could utilize, or provide the source code to allow it to be directly compiled in with other
programs. programs.
{% endblock %} {% endblock %}

View File

@ -5,106 +5,106 @@
<h1>Tk Calculator</h1> <h1>Tk Calculator</h1>
<ul> <ul>
<li><a href="#intro">Project Description</a></li> <li><a href="#intro">Project Description</a></li>
<li><a href="#screenshots">Screenshots</a></li> <li><a href="#screenshots">Screenshots</a></li>
<li><a href="#license">License</a></li> <li><a href="#license">License</a></li>
<li><a href="#downloads">Downloads</a></li> <li><a href="#downloads">Downloads</a></li>
</ul> </ul>
<a name="intro"></a> <a name="intro"></a>
<img src="projects/tkcalc/logo.png" alt="tkcalc" width="400" height="90"> <img src="projects/tkcalc/logo.png" alt="tkcalc" width="400" height="90">
<h2>Project Description</h2> <h2>Project Description</h2>
The <strong>Perl/Tk Calculator</strong> is a simple graphical calculator The <strong>Perl/Tk Calculator</strong> is a simple graphical calculator
program I wrote in Perl using the Tk GUI toolkit, hence its name. That's program I wrote in Perl using the Tk GUI toolkit, hence its name. That's
about as creative as it gets.<p> about as creative as it gets.<p>
The calculator performs a lot of mathematical functions, and can even The calculator performs a lot of mathematical functions, and can even
plot graphs and then tell you all the points that it plotted on said plot graphs and then tell you all the points that it plotted on said
graph. graph.
<h3>Features</h3> <h3>Features</h3>
<ul> <ul>
<li>Performs math functions.</li> <li>Performs math functions.</li>
<li>Unlike the Windows calculator, you can enter full equations <li>Unlike the Windows calculator, you can enter full equations
in this and they're displayed on-screen at all times.</li> in this and they're displayed on-screen at all times.</li>
<li>Buttons can be clicked to insert math operators, or you can <li>Buttons can be clicked to insert math operators, or you can
type them yourself with the keyboard.</li> type them yourself with the keyboard.</li>
<li>Generate graphs of functions and display it, and return all <li>Generate graphs of functions and display it, and return all
the points that it plotted on the graph.</li> the points that it plotted on the graph.</li>
</ul> </ul>
<a name="screenshots"></a> <a name="screenshots"></a>
<h2 style="margin-top: 0px">Screenshots</h2> <h2 style="margin-top: 0px">Screenshots</h2>
<table border="0" cellspacing="0" cellpadding="0" style="margin-left: auto; margin-right: auto"> <table border="0" cellspacing="0" cellpadding="0" style="margin-left: auto; margin-right: auto">
<tr> <tr>
<td align="center" valign="top"> <td align="center" valign="top">
<img src="projects/tkcalc/ss01.jpg" width="616" height="434" alt="Screenshot"><br> <img src="projects/tkcalc/ss01.jpg" width="616" height="434" alt="Screenshot"><br>
tkcalc in action, showing two of the program's tabs. tkcalc in action, showing two of the program's tabs.
</td> </td>
</tr> </tr>
</table> </table>
<a name="license"></a> <a name="license"></a>
<h2 style="margin-top: 0px">Software License</h2> <h2 style="margin-top: 0px">Software License</h2>
<pre> Perl/Tk Calculator <pre> Perl/Tk Calculator
Copyright (C) 2008 Casey Kirsle Copyright (C) 2008 Casey Kirsle
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or the Free Software Foundation; either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License along You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</pre> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</pre>
<a name="downloads"></a> <a name="downloads"></a>
<h2 style="margin-top: 0px">Downloads</h2> <h2 style="margin-top: 0px">Downloads</h2>
It's recommended that you download the latest version of this software It's recommended that you download the latest version of this software
as listed below. To download older versions and source code, skip to as listed below. To download older versions and source code, skip to
the next section. the next section.
<h3>Windows Executable</h3> <h3>Windows Executable</h3>
<blockquote> <blockquote>
<img src="images/dos.png" width="32" height="32" alt="Win32" style="vertical-align: middle"> <img src="images/dos.png" width="32" height="32" alt="Win32" style="vertical-align: middle">
<a href="/download?type=bin&amp;project=tkcalc&amp;file=tkcalc-1.1_bin.zip"> <a href="/download?type=bin&amp;project=tkcalc&amp;file=tkcalc-1.1_bin.zip">
Download Tk Calculator</a><br> Download Tk Calculator</a><br>
Version 1.1 - 2006/12/18<br> Version 1.1 - 2006/12/18<br>
<small>ZIP format/3.5 MB</small> <small>ZIP format/3.5 MB</small>
</blockquote> </blockquote>
<h3>Linux Binary</h3> <h3>Linux Binary</h3>
<blockquote> <blockquote>
<img src="images/exec.png" width="32" height="32" alt="Linux" style="vertical-align: middle"> <img src="images/exec.png" width="32" height="32" alt="Linux" style="vertical-align: middle">
<a href="/download?type=bin&amp;project=tkcalc&amp;file=tkcalc-1.1_linux.tar.gz"> <a href="/download?type=bin&amp;project=tkcalc&amp;file=tkcalc-1.1_linux.tar.gz">
Download Tk Calculator</a><br> Download Tk Calculator</a><br>
Version 1.1 - 2006/12/18<br> Version 1.1 - 2006/12/18<br>
<small>TAR.GZ format/4.4 MB</small> <small>TAR.GZ format/4.4 MB</small>
</blockquote> </blockquote>
<h2>All Distributions</h2> <h2>All Distributions</h2>
The following are all the distributions available for this software, The following are all the distributions available for this software,
starting with the most recent. Source code is also available for all starting with the most recent. Source code is also available for all
versions.<p> versions.<p>
<table border="0" cellspacing="2" cellpadding="2" class="distro"> <table border="0" cellspacing="2" cellpadding="2" class="distro">
<tr> <tr>
<th>Release</th> <th>Release</th>
<th>Windows EXE</th> <th>Windows EXE</th>