1
0
mirror of https://github.com/kirsle/kirsle.net synced 2024-12-21 22:49:28 +00:00

Spaces to tabs

This commit is contained in:
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 #}
{% for tag in tags %}
{% if not tag["small"] %}
<li>&#0187; <a href="{{ url_for('blog.category', category=tag['category']) }}">{{ tag['category'] }}</a>
<small>({{ tag['count'] }})</small></li>
{% endif %}
{% if not tag["small"] %}
<li>&#0187; <a href="{{ url_for('blog.category', category=tag['category']) }}">{{ tag['category'] }}</a>
<small>({{ tag['count'] }})</small></li>
{% endif %}
{% endfor %}
{% if has_small %}
</ul><!-- end list from layout.html -->
<div id="blog_show_more" style="display: none">
<ul>
{% for tag in tags %}
{% if tag["small"] %}
<li>&#0187; <a href="{{ url_for('blog.category', category=tag['category']) }}">{{ tag['category'] }}</a>
<small>({{ tag['count'] }})</small></li>
{% endif %}
{% endfor %}
</ul>
</div>
<div id="blog_show_less" style="display: block">
<ul>
<li>&#0164; <a href="#" onClick="$('#blog_show_less').hide(); $('#blog_show_more').show(1000); return false">Show more...</a></li>
</ul>
</div>
</ul><!-- end list from layout.html -->
<div id="blog_show_more" style="display: none">
<ul>
{% for tag in tags %}
{% if tag["small"] %}
<li>&#0187; <a href="{{ url_for('blog.category', category=tag['category']) }}">{{ tag['category'] }}</a>
<small>({{ tag['count'] }})</small></li>
{% endif %}
{% endfor %}
</ul>
</div>
<div id="blog_show_less" style="display: block">
<ul>
<li>&#0164; <a href="#" onClick="$('#blog_show_less').hide(); $('#blog_show_more').show(1000); return false">Show more...</a></li>
</ul>
</div>
{% 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>
<div class="row">
<div class="col-md-4 center">
<a href="/designs/lavender" target="_blank">
<img src="/designs/screenshots/lavender.t.png" alt="Lavender" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/lavender" target="_blank">Cuvou.com Lavender</a><p>
<div class="col-md-4 center">
<a href="/designs/lavender" target="_blank">
<img src="/designs/screenshots/lavender.t.png" alt="Lavender" class="portrait">
</a>
</div>
<div class="col-md-8">
<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
using for my personal website somewhere around the year 2006.
</div>
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.
</div>
</div>
<br>
<div class="row">
<div class="col-md-4 center">
<a href="/designs/starburst" target="_blank">
<img src="/designs/screenshots/starburst.t.png" alt="Starburst" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/starburst" target="_blank">Cuvou.com Starburst</a><p>
<div class="col-md-4 center">
<a href="/designs/starburst" target="_blank">
<img src="/designs/screenshots/starburst.t.png" alt="Starburst" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/starburst" target="_blank">Cuvou.com Starburst</a><p>
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
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.
</div>
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
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.
</div>
</div>
<br>
<div class="row">
<div class="col-md-4 center">
<a href="/designs/storm" target="_blank">
<img src="/designs/screenshots/storm.t.png" alt="Storm" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/storm" target="_blank">Cuvou.com Storm</a><p>
<div class="col-md-4 center">
<a href="/designs/storm" target="_blank">
<img src="/designs/screenshots/storm.t.png" alt="Storm" class="portrait">
</a>
</div>
<div class="col-md-8">
<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
quickly replaced it.
</div>
This was the third design. I didn't end up liking it very much and
quickly replaced it.
</div>
</div>
<br>
<div class="row">
<div class="col-md-4 center">
<a href="/designs/cosmos" target="_blank">
<img src="/designs/screenshots/cosmos.t.png" alt="Cosmos" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/cosmos" target="_blank">Cuvou.com Cosmos</a><p>
<div class="col-md-4 center">
<a href="/designs/cosmos" target="_blank">
<img src="/designs/screenshots/cosmos.t.png" alt="Cosmos" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/cosmos" target="_blank">Cuvou.com Cosmos</a><p>
This was the final redesign for Cuvou.com and features an outer space
style theme, while still keeping the blue and pink color scheme.
</div>
This was the final redesign for Cuvou.com and features an outer space
style theme, while still keeping the blue and pink color scheme.
</div>
</div>
<br>
<div class="row">
<div class="col-md-4 center">
<a href="/designs/solar" target="_blank">
<img src="/designs/screenshots/solar.t.png" alt="Solar" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/solar" target="_blank">Kirsle.net Solar</a><p>
<div class="col-md-4 center">
<a href="/designs/solar" target="_blank">
<img src="/designs/screenshots/solar.t.png" alt="Solar" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/solar" target="_blank">Kirsle.net Solar</a><p>
This was the original "Solar" theme for Kirsle.net, which was the next
logical upgrade from the Cosmos theme. This first iteration used static,
flat images for every part of the design: though the design looks like
it has transparent backgrounds, they were actually pre-rendered, because
I wanted to support Internet Explorer 6 and it couldn't handle alpha
channels in PNG images.<p>
This was the original "Solar" theme for Kirsle.net, which was the next
logical upgrade from the Cosmos theme. This first iteration used static,
flat images for every part of the design: though the design looks like
it has transparent backgrounds, they were actually pre-rendered, because
I wanted to support Internet Explorer 6 and it couldn't handle alpha
channels in PNG images.<p>
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
back together.
</div>
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
back together.
</div>
</div>
<br>
<div class="row">
<div class="col-md-4 center">
<a href="/designs/solar-html5" target="_blank">
<img src="/designs/screenshots/solar-html5.t.png" alt="Solar HTML5" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/solar-html5" target="_blank">Kirsle.net Solar (HTML5)</a><p>
<div class="col-md-4 center">
<a href="/designs/solar-html5" target="_blank">
<img src="/designs/screenshots/solar-html5.t.png" alt="Solar HTML5" class="portrait">
</a>
</div>
<div class="col-md-8">
<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
CSS3 for the rounded panel borders and transparent PNGs for the panel
background colors, breaking compatibility with MSIE 6.0.<p>
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
background colors, breaking compatibility with MSIE 6.0.<p>
This design went live on Kirsle.net on May 12, 2010.
<a href="/blog/entry/design-refresh">Relevant blog post</a>.
</div>
This design went live on Kirsle.net on May 12, 2010.
<a href="/blog/entry/design-refresh">Relevant blog post</a>.
</div>
</div>
<br>
<div class="row">
<div class="col-md-4 center">
<a href="/designs/solar-bootstrap" target="_blank">
<img src="/designs/screenshots/solar-bootstrap.t.png" alt="Solar Bootstrap" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/solar-bootstrap" target="_blank">Kirsle.net Solar (Bootstrap)</a><p>
<div class="col-md-4 center">
<a href="/designs/solar-bootstrap" target="_blank">
<img src="/designs/screenshots/solar-bootstrap.t.png" alt="Solar Bootstrap" class="portrait">
</a>
</div>
<div class="col-md-8">
<a href="/designs/solar-bootstrap" target="_blank">Kirsle.net Solar (Bootstrap)</a><p>
Another design refresh that uses Twitter Bootstrap as the layout engine,
improving compatibility with mobile browsers. This design went live on
October 15, 2014.
</div>
Another design refresh that uses Twitter Bootstrap as the layout engine,
improving compatibility with mobile browsers. This design went live on
October 15, 2014.
</div>
</div>
{% endblock %}

View File

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

View File

@ -1,222 +1,222 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Solar Bootstrap - Kirsle.net</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Solar Bootstrap - Kirsle.net</title>
<!-- 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-theme.min.css">
<!-- 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-theme.min.css">
<!-- Kirsle.net Solar -->
<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" href="/designs/solar-bootstrap/monokai.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">
<!-- Kirsle.net Solar -->
<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" href="/designs/solar-bootstrap/monokai.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">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<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>
<![endif]-->
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<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>
<![endif]-->
</head>
<body>
<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 class="k-supernova"></div>
<div class="container-fluid">
<div class="row">
<div class="col-md-4 col-md-offset-3">
<div class="k-kirsle" onclick="self.location='/'"></div>
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-3">
<div class="k-kirsle" onclick="self.location='/'"></div>
</div>
</div>
<div class="row">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<div class="k-content-panel">
<h1>Kirsle.net Solar (Bootstrap)</h1>
<div class="col-sm-10 col-sm-push-2">
<div class="k-content-panel">
<h1>Kirsle.net Solar (Bootstrap)</h1>
This is another design refresh for Kirsle.net Solar that uses Twitter
Bootstrap as its layout engine, making it work better on mobile. Resize
the browser window and see how the site reacts.<p>
This is another design refresh for Kirsle.net Solar that uses Twitter
Bootstrap as its layout engine, making it work better on mobile. Resize
the browser window and see how the site reacts.<p>
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.
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.
<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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
<pre>Preformatted
T e x t . i</pre>
<pre>Preformatted
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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
<div class="k-copyright">
Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br>
Powered by <a href="http://rophako.kirsle.net/" target="_blank">Rophako</a> v0.01 -
Hosted by <a href="#">DigitalOcean</a><br>
Page generated in 0.001s.
</div>
</div>
</div>
<div class="k-copyright">
Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br>
Powered by <a href="http://rophako.kirsle.net/" target="_blank">Rophako</a> v0.01 -
Hosted by <a href="#">DigitalOcean</a><br>
Page generated in 0.001s.
</div>
</div>
</div>
<div class="col-sm-2 col-sm-pull-10">
<div class="k-navpanel">
<a name="navbar"></a>
<div class="k-section">Kirsle</div>
<ul>
<li>&#0187; <a href="#/">Homepage</a> (<a href="#">RSS</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="#/guestbook">Guestbook</a></li>
<li>&#0187; <a href="#/contact">Contact Me</a></li>
</ul>
<div class="col-sm-2 col-sm-pull-10">
<div class="k-navpanel">
<a name="navbar"></a>
<div class="k-section">Kirsle</div>
<ul>
<li>&#0187; <a href="#/">Homepage</a> (<a href="#">RSS</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="#/guestbook">Guestbook</a></li>
<li>&#0187; <a href="#/contact">Contact Me</a></li>
</ul>
<div class="k-section">Channels</div>
<ul>
<li>&#0187; <a href="#">Blog Archives</a></li>
</ul>
<div class="k-section">Channels</div>
<ul>
<li>&#0187; <a href="#">Blog Archives</a></li>
</ul>
<div class="k-section">Creativity</div>
<ul>
<li>&#0187; <a href="#/rendering">3D Renderings</a></li>
<li>&#0187; <a href="#/flash">Flash Animation</a></li>
<li>&#0187; <a href="#/javascript">JavaScript</a></li>
<li>&#0187; <a href="#/fonts">Fonts</a></li>
<li>&#0187; <a href="#/metacity">Metacity</a></li>
<li>&#0187; <a href="#/doc/">Tutorials</a></li>
<li>&#0187; <a href="#/designs">Web Design</a></li>
</ul>
<div class="k-section">Creativity</div>
<ul>
<li>&#0187; <a href="#/rendering">3D Renderings</a></li>
<li>&#0187; <a href="#/flash">Flash Animation</a></li>
<li>&#0187; <a href="#/javascript">JavaScript</a></li>
<li>&#0187; <a href="#/fonts">Fonts</a></li>
<li>&#0187; <a href="#/metacity">Metacity</a></li>
<li>&#0187; <a href="#/doc/">Tutorials</a></li>
<li>&#0187; <a href="#/designs">Web Design</a></li>
</ul>
<div class="k-section">Software</div>
<ul>
<li>&#0187; <a href="#/rivescript">RiveScript</a></li>
<li>&#0187; <a href="#/errorgen">Error Generator</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="#/pccc">CyanChat Client</a></li>
</ul>
<div class="k-section">Software</div>
<ul>
<li>&#0187; <a href="#/rivescript">RiveScript</a></li>
<li>&#0187; <a href="#/errorgen">Error Generator</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="#/pccc">CyanChat Client</a></li>
</ul>
<div class="k-section">Web Tools</div>
<ul>
<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/fader.cgi">Text Fader</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/translator.html">Azulian Translater</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>
</ul>
<div class="k-section">Web Tools</div>
<ul>
<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/fader.cgi">Text Fader</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/translator.html">Azulian Translater</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>
</ul>
<div class="k-section">Subdomains</div>
<ul>
<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://rophako.kirsle.net/">Rophako CMS</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>
</ul>
<div class="k-section">Subdomains</div>
<ul>
<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://rophako.kirsle.net/">Rophako CMS</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>
</ul>
<div class="k-section">Miscellany</div>
<ul>
<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="#/raspberrypi">Raspberry Pi</a></li>
</ul>
<div class="k-section">Miscellany</div>
<ul>
<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="#/raspberrypi">Raspberry Pi</a></li>
</ul>
<div class="k-section">Links</div>
<ul>
<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://myspace.com/kirsle">MySpace</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="#https://www.npmjs.org/~kirsle">npm</a></li>
</ul>
<div class="k-section">Links</div>
<ul>
<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://myspace.com/kirsle">MySpace</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="#https://www.npmjs.org/~kirsle">npm</a></li>
</ul>
<div class="k-section">Fan Club</div>
<ul>
<li>&#0187; <a href="#" class="login-link">Log In</a></li>
</ul>
<div class="k-section">Fan Club</div>
<ul>
<li>&#0187; <a href="#" class="login-link">Log In</a></li>
</ul>
<div class="center">
<a href="https://www.python.org/" target="_blank">
<img src="/designs/solar-bootstrap/python.png" width="80" height="15" alt="Python powered">
</a><br>
<div class="center">
<a href="https://www.python.org/" target="_blank">
<img src="/designs/solar-bootstrap/python.png" width="80" height="15" alt="Python powered">
</a><br>
<a href="http://validator.w3.org/check?uri=referer">
<img src="/designs/solar-bootstrap/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br>
<a href="http://validator.w3.org/check?uri=referer">
<img src="/designs/solar-bootstrap/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br>
<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">
</a><p>
<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">
</a><p>
<a href="#" target="_blank">
<img src="/designs/solar-bootstrap/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean">
</a>
</div>
<a href="#" target="_blank">
<img src="/designs/solar-bootstrap/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean">
</a>
</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/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".login-link").click(function() {
$("#login-link").hide();
$("#login-inline").show(500);
return false;
});
});
$(document).ready(function() {
$(".login-link").click(function() {
$("#login-link").hide();
$("#login-inline").show(500);
return false;
});
});
</script>
{% block scripts %}{% endblock %}
@ -252,11 +252,11 @@
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.kirsle.net/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.kirsle.net/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<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>
<html>
<head>
<title>Solar Theme - Kirsle.net</title>
<head>
<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" 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="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="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" 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="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog/rss">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="k-supernova"></div>
<div class="k-kirsle" onClick="self.location='/'"></div>
<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
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
flexible but cutting out support for Internet Explorer 6.0.<p>
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
borders and alpha transparency PNG images, making the design a lot more
flexible but cutting out support for Internet Explorer 6.0.<p>
This design was a replacement for the original,
<a href="/designs/solar">flat Solar theme</a>, and was itself later upgraded
to use Bootstrap to <a href="/designs/solar-bootstrap">support mobile
browsers</a>.
This design was a replacement for the original,
<a href="/designs/solar">flat Solar theme</a>, and was itself later upgraded
to use Bootstrap to <a href="/designs/solar-bootstrap">support mobile
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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
<pre>Preformatted
T e x t . i</pre>
<pre>Preformatted
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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
<div class="k-copyright">
Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br>
Powered by <a href="http://rophako.kirsle.net/" target="_blank">Rophako</a> v0.01 -
Hosted by <a href="#">DigitalOcean</a><br>
Page generated in 0.001s.
</div>
<div class="k-copyright">
Copyright &copy; 2014 Noah Petherbridge &mdash; All rights reserved<br>
Powered by <a href="http://rophako.kirsle.net/" target="_blank">Rophako</a> v0.01 -
Hosted by <a href="#">DigitalOcean</a><br>
Page generated in 0.001s.
</div>
</div>
<div class="k-navpanel">
<div class="k-section">Kirsle</div>
<div class="k-navi">
&#0187; <a href="#/">Homepage</a> (<a href="#">RSS</a>)<br>
&#0187; <a href="#/about">About Me</a><br>
&#0187; <a href="#/photos/albums">Photo Albums</a><br>
&#0187; <a href="#/guestbook">Guestbook</a><br>
&#0187; <a href="#/contact">Contact Me</a>
</div>
<div class="k-section">Kirsle</div>
<div class="k-navi">
&#0187; <a href="#/">Homepage</a> (<a href="#">RSS</a>)<br>
&#0187; <a href="#/about">About Me</a><br>
&#0187; <a href="#/photos/albums">Photo Albums</a><br>
&#0187; <a href="#/guestbook">Guestbook</a><br>
&#0187; <a href="#/contact">Contact Me</a>
</div>
<div class="k-section">Channels</div>
<div class="k-navi">
&#0187; <a href="#">Blog Archives</a>
</div>
<div class="k-section">Channels</div>
<div class="k-navi">
&#0187; <a href="#">Blog Archives</a>
</div>
<div class="k-section">Creativity</div>
<div class="k-navi">
&#0187; <a href="#/rendering">3D Renderings</a><br>
&#0187; <a href="#/flash">Flash Animation</a><br>
&#0187; <a href="#/javascript">JavaScript</a><br>
&#0187; <a href="#/fonts">Fonts</a><br>
&#0187; <a href="#/metacity">Metacity</a><br>
&#0187; <a href="#/doc/">Tutorials</a>
</div>
<div class="k-section">Creativity</div>
<div class="k-navi">
&#0187; <a href="#/rendering">3D Renderings</a><br>
&#0187; <a href="#/flash">Flash Animation</a><br>
&#0187; <a href="#/javascript">JavaScript</a><br>
&#0187; <a href="#/fonts">Fonts</a><br>
&#0187; <a href="#/metacity">Metacity</a><br>
&#0187; <a href="#/doc/">Tutorials</a>
</div>
<div class="k-section">Software</div>
<div class="k-navi">
&#0187; <a href="#/rivescript">RiveScript</a><br>
&#0187; <a href="#/errorgen">Error Generator</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="#/pccc">CyanChat Client</a>
</div>
<div class="k-section">Software</div>
<div class="k-navi">
&#0187; <a href="#/rivescript">RiveScript</a><br>
&#0187; <a href="#/errorgen">Error Generator</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="#/pccc">CyanChat Client</a>
</div>
<div class="k-section">Web Tools</div>
<div class="k-navi">
&#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/fader.cgi">Text Fader</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/translator.html">Azulian Encoder</a><br>
&#0187; <a href="#/wizards/xbmask.cgi">XBM Masks</a><br>
&#0187; <a href="#/wizards/flask-session.py">Flask Session</a>
</div>
<div class="k-section">Web Tools</div>
<div class="k-navi">
&#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/fader.cgi">Text Fader</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/translator.html">Azulian Encoder</a><br>
&#0187; <a href="#/wizards/xbmask.cgi">XBM Masks</a><br>
&#0187; <a href="#/wizards/flask-session.py">Flask Session</a>
</div>
<div class="k-section">Subdomains</div>
<div class="k-navi">
&#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://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://minecraft.kirsle.net/" target="_blank">Minecraft Server</a>
</div>
<div class="k-section">Subdomains</div>
<div class="k-navi">
&#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://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://minecraft.kirsle.net/" target="_blank">Minecraft Server</a>
</div>
<div class="k-section">Miscellany</div>
<div class="k-navi">
&#0164; <a href="#/firered">Pokemon Fuchsia City</a><br>
&#0164; <a href="#/msdos">DOS and Windows</a><br>
&#0164; <a href="#/raspberrypi">Raspberry Pi</a>
</div>
<div class="k-section">Miscellany</div>
<div class="k-navi">
&#0164; <a href="#/firered">Pokemon Fuchsia City</a><br>
&#0164; <a href="#/msdos">DOS and Windows</a><br>
&#0164; <a href="#/raspberrypi">Raspberry Pi</a>
</div>
<div class="k-section">Links</div>
<div class="k-navi">
&#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://myspace.com/kirsle">MySpace</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="#https://www.npmjs.org/~kirsle">npm</a>
</div>
<div class="k-section">Links</div>
<div class="k-navi">
&#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://myspace.com/kirsle">MySpace</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="#https://www.npmjs.org/~kirsle">npm</a>
</div>
<div class="k-section">Fan Club</div>
<div class="k-navi">
&#0187; <a href="#" class="login-link">Log In</a>
</div><p>
<div class="k-section">Fan Club</div>
<div class="k-navi">
&#0187; <a href="#" class="login-link">Log In</a>
</div><p>
<div class="k-navi">
<div class="center">
<a href="https://www.python.org/" target="_blank">
<img src="/designs/solar-html5/python.png" width="80" height="15" alt="Python powered">
</a><br>
<div class="k-navi">
<div class="center">
<a href="https://www.python.org/" target="_blank">
<img src="/designs/solar-html5/python.png" width="80" height="15" alt="Python powered">
</a><br>
<a href="http://validator.w3.org/check?uri=referer">
<img src="/designs/solar-html5/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br>
<a href="http://validator.w3.org/check?uri=referer">
<img src="/designs/solar-html5/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br>
<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">
</a><p>
<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">
</a><p>
<a href="#" target="_blank">
<img src="/designs/solar-html5/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean">
</a>
</div>
</div>
<a href="#" target="_blank">
<img src="/designs/solar-html5/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean">
</a>
</div>
</div>
</div>
<script type="text/javascript" src="/designs/solar-html5/jquery-2.1.0.min.js"></script>

View File

@ -9,243 +9,243 @@
<body>
<div class="k-supernova">
<div class="k-kirsle" onClick="self.location='/'"></div>
<div class="k-kirsle" onClick="self.location='/'"></div>
</div>
<!-- ####################################################################### -->
<!-- ## Main Content ## -->
<!-- ## Main Content ## -->
<!-- ####################################################################### -->
<div class="k-content-panel">
<div class="k-content-eyecandy">
<div class="k-content-n">
<div class="k-content-ne"></div>
</div>
<div class="k-content-main">
<div class="k-content-body">
<div class="k-content-eyecandy">
<div class="k-content-n">
<div class="k-content-ne"></div>
</div>
<div class="k-content-main">
<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,
static images rather than true transparency to support Internet Explorer 6.<p>
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>
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
the previous <a href="/designs/cosmos">Cosmos</a> theme.<p>
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
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
compatibility with MSIE 6.
I later <a href="/designs/solar-html5">gave it an HTML5 refresh</a> and broke
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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
<pre>Preformatted
T e x t . i</pre>
<pre>Preformatted
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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
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.
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.
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
blandit sagittis. Sed vestibulum, dolor nec vehicula accumsan, purus leo congue risus, at dapibus massa lorem sit amet purus.<p>
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,
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
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>
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
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
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,
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.
Morbi semper tellus eget ipsum porta pellentesque.
<div class="k-copyright">
Copyright &copy; 2010 Kirsle<br>
Powered by Siikir 0.01 by Casey Kirsle
</div>
</div>
<div class="k-content-foot">
<div class="k-content-sw"></div>
<div class="k-content-se"></div>
</div>
</div>
</div>
<div class="k-copyright">
Copyright &copy; 2010 Kirsle<br>
Powered by Siikir 0.01 by Casey Kirsle
</div>
</div>
<div class="k-content-foot">
<div class="k-content-sw"></div>
<div class="k-content-se"></div>
</div>
</div>
</div>
</div>
<!-- ####################################################################### -->
<!-- ## Navigation Panel ## -->
<!-- ## Navigation Panel ## -->
<!-- ####################################################################### -->
<div class="k-navpanel">
<div class="k-navbg">
<div class="k-navbody">
<div class="k-section">Kirsle</div>
<div class="k-navi">
&#0187; <a href="#/">Homepage</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="#/guestbook.html">Guestbook</a><br>
&#0187; <a href="#/profile.html?u=kirsle">Contact Me</a>
</div>
<div class="k-navbg">
<div class="k-navbody">
<div class="k-section">Kirsle</div>
<div class="k-navi">
&#0187; <a href="#/">Homepage</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="#/guestbook.html">Guestbook</a><br>
&#0187; <a href="#/profile.html?u=kirsle">Contact Me</a>
</div>
<div class="k-section">Channels</div>
<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=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=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=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=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=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=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=Photos">Photos</a> <small>(3)</small><br>
&#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>
<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=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=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=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=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=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=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=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=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=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>
</div>
<div class="k-section">Channels</div>
<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=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=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=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=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=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=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=Photos">Photos</a> <small>(3)</small><br>
&#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>
<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=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=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=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=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=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=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=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=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=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>
</div>
<div class="k-section">Creativity</div>
<div class="k-navi">
&#0187; <a href="#/rendering.html">3D Renderings</a><br>
&#0187; <a href="#/flash.html">Flash Animation</a><br>
&#0187; <a href="#/javascript.html">JavaScript</a><br>
&#0187; <a href="#/fonts.html">Fonts</a><br>
&#0187; <a href="#/metacity.html">Metacity</a><br>
&#0187; <a href="#/doc/">Tutorials</a>
</div>
<div class="k-section">Creativity</div>
<div class="k-navi">
&#0187; <a href="#/rendering.html">3D Renderings</a><br>
&#0187; <a href="#/flash.html">Flash Animation</a><br>
&#0187; <a href="#/javascript.html">JavaScript</a><br>
&#0187; <a href="#/fonts.html">Fonts</a><br>
&#0187; <a href="#/metacity.html">Metacity</a><br>
&#0187; <a href="#/doc/">Tutorials</a>
</div>
<div class="k-section">Software</div>
<div class="k-navi">
&#0187; <a href="#/rivescript.html">RiveScript</a><br>
&#0187; <a href="#/errorgen.html">Error Generator</a><br>
&#0187; <a href="#/tkcalc.html">Tk Calculator</a><br>
&#0187; <a href="#/terminal.html">Terminal Apps</a><br>
&#0187; <a href="#/pccc.html">CyanChat Client</a>
</div>
<div class="k-section">Software</div>
<div class="k-navi">
&#0187; <a href="#/rivescript.html">RiveScript</a><br>
&#0187; <a href="#/errorgen.html">Error Generator</a><br>
&#0187; <a href="#/tkcalc.html">Tk Calculator</a><br>
&#0187; <a href="#/terminal.html">Terminal Apps</a><br>
&#0187; <a href="#/pccc.html">CyanChat Client</a>
</div>
<div class="k-section">Web Tools</div>
<div class="k-navi">
&#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/favicon.cgi">Favicons</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/xbmask.cgi">XBM Masks</a>
</div>
<div class="k-section">Web Tools</div>
<div class="k-navi">
&#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/favicon.cgi">Favicons</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/xbmask.cgi">XBM Masks</a>
</div>
<div class="k-section">Subdomains</div>
<div class="k-navi">
&#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://rpm.kirsle.net/">Linux RPMs</a>
</div>
<div class="k-section">Subdomains</div>
<div class="k-navi">
&#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://rpm.kirsle.net/">Linux RPMs</a>
</div>
<div class="k-section">Fan Club</div>
<div class="k-navi">
&#0187; <a href="#/login.html">Log In</a><br>
&#0187; <a href="#/register.html">Sign Up</a>
</div><p>
<div class="k-section">Fan Club</div>
<div class="k-navi">
&#0187; <a href="#/login.html">Log In</a><br>
&#0187; <a href="#/register.html">Sign Up</a>
</div><p>
<div class="k-navi">
<div class="center">
<a href="#http://validator.w3.org/check?uri=referer">
<img src="/designs/solar/html.png" width="88" height="31" alt="HTML 4.01 Strict">
</a><br>
<div class="k-navi">
<div class="center">
<a href="#http://validator.w3.org/check?uri=referer">
<img src="/designs/solar/html.png" width="88" height="31" alt="HTML 4.01 Strict">
</a><br>
<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">
</a><br>
<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">
</a><br>
<a href="#http://www.perl.org/">
<img src="/designs/solar/perlpowered.png" width="88" height="31" alt="Powered by Perl">
</a>
</div>
</div><p>
<a href="#http://www.perl.org/">
<img src="/designs/solar/perlpowered.png" width="88" height="31" alt="Powered by Perl">
</a>
</div>
</div><p>
<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">
Statistics
</div>
<div style="padding: 2px; font-size: smaller">
Total Hits:
<div style="border: 1px inset #006699; padding: 2px">
<strong>490</strong> today, and<br>
<strong>31264</strong> altogether
</div>
<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">
Statistics
</div>
<div style="padding: 2px; font-size: smaller">
Total Hits:
<div style="border: 1px inset #006699; padding: 2px">
<strong>490</strong> today, and<br>
<strong>31264</strong> altogether
</div>
Unique Visitors:
<div style="border: 1px inset #006699; padding: 2px">
<strong>256</strong> today, and<br>
<strong>852</strong> altogether
</div>
Unique Visitors:
<div style="border: 1px inset #006699; padding: 2px">
<strong>256</strong> today, and<br>
<strong>852</strong> altogether
</div>
&#0164; <a href="#/traffic.html?do=hits" style="text-decoration: underline; font-weight: normal">
Traffic Stats</a><br>
&#0164; <a href="#/traffic.html?do=browsers" style="text-decoration: underline; font-weight: normal">
Web Browsers &amp; OS's</a><br>
&#0164; <a href="#/traffic.html?do=referer" style="text-decoration: underline; font-weight: normal">
HTTP Referrers</a>
</div>
</div>
</div>
</div>
<div class="k-navfoot"></div>
&#0164; <a href="#/traffic.html?do=hits" style="text-decoration: underline; font-weight: normal">
Traffic Stats</a><br>
&#0164; <a href="#/traffic.html?do=browsers" style="text-decoration: underline; font-weight: normal">
Web Browsers &amp; OS's</a><br>
&#0164; <a href="#/traffic.html?do=referer" style="text-decoration: underline; font-weight: normal">
HTTP Referrers</a>
</div>
</div>
</div>
</div>
<div class="k-navfoot"></div>
</div>
</body>
@ -255,10 +255,10 @@
<!--
FILE ARCHIVED ON 1:33:28 May 6, 2010 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 18:25:04 Oct 16, 2014.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
FILE ARCHIVED ON 1:33:28 May 6, 2010 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 18:25:04 Oct 16, 2014.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
-->

View File

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

View File

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

View File

@ -3,42 +3,42 @@
{% block content %}
{% if method == "index" %}
<h1>Project {{ project }}</h1>
<h1>Project {{ project }}</h1>
You are about to download the file <strong>{{ file }}</strong> from the
project <strong>{{ project }}</strong>. This file has been downloaded
{{ hits }} time(s).
You are about to download the file <strong>{{ file }}</strong> from the
project <strong>{{ project }}</strong>. This file has been downloaded
{{ hits }} time(s).
<h1>Download</h1>
<h1>Download</h1>
To continue your download, click on the button below.
<br><br><br>
To continue your download, click on the button below.
<br><br><br>
<form name="download" action="/download" method="POST">
<input type="hidden" name="token" value="{{ csrf_token() }}">
<input type="hidden" name="method" value="get">
<input type="hidden" name="project" value="{{ project }}">
<input type="hidden" name="file" value="{{ file }}">
<form name="download" action="/download" method="POST">
<input type="hidden" name="token" value="{{ csrf_token() }}">
<input type="hidden" name="method" value="get">
<input type="hidden" name="project" value="{{ project }}">
<input type="hidden" name="file" value="{{ file }}">
<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">
<button type="submit">Download Now</button>
</span>
</form>
<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">
<button type="submit">Download Now</button>
</span>
</form>
{% elif method == "get" %}
<h1>Downloading File...</h1>
<h1>Downloading File...</h1>
Your download of <strong>{{ file }}</strong> will begin shortly. If it doesn't,
<a href="/projects/{{ project }}/{{ file }}">download it directly</a>.
Your download of <strong>{{ file }}</strong> will begin shortly. If it doesn't,
<a href="/projects/{{ project }}/{{ file }}">download it directly</a>.
{% endif %}
{% endblock %}
{% block scripts %}
{% if method == "get" %}
<script>
$(document).ready(function() {
window.location.href = "/projects/{{ project }}/{{ file }}";
});
</script>
{% endif %}
{% if method == "get" %}
<script>
$(document).ready(function() {
window.location.href = "/projects/{{ project }}/{{ file }}";
});
</script>
{% endif %}
{% endblock %}

View File

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

View File

@ -5,9 +5,9 @@
<h1>My Guestbook</h1>
{{ include_page("comment.partial_index",
thread="guestbook",
subject="My Guestbook",
header=False,
thread="guestbook",
subject="My Guestbook",
header=False,
) | safe }}
{% 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>
&#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 %}
{% block scripts %}
<script type="text/javascript">
function openWin(obj) {
window.open (obj.href);
return false;
window.open (obj.href);
return false;
}
</script>
{% endblock %}

View File

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

View File

@ -1,220 +1,220 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}{% endblock %} - Kirsle.net</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}{% endblock %} - Kirsle.net</title>
<!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/css/bootstrap-theme.min.css">
<!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/css/bootstrap-theme.min.css">
<!-- Kirsle.net Solar -->
<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" href="/solar/monokai.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">
<!-- Kirsle.net Solar -->
<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" href="/solar/monokai.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">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<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>
<![endif]-->
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<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>
<![endif]-->
</head>
<body>
{% from "google-ads.inc.html" import leaderboard, nav_ads %}
<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 class="k-supernova"></div>
<div class="container-fluid">
<div class="row">
<div class="col-md-4 col-md-offset-3">
<div class="k-kirsle" onclick="self.location='/'"></div>
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-3">
<div class="k-kirsle" onclick="self.location='/'"></div>
</div>
</div>
<div class="row">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<div class="k-content-panel">
{% with messages = get_flashed_messages() %}
{% if messages %}
<h1>Notice!</h1>
<div class="col-sm-10 col-sm-push-2">
<div class="k-content-panel">
{% with messages = get_flashed_messages() %}
{% if messages %}
<h1>Notice!</h1>
<ul>
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<ul>
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
{% block content %}{% endblock %}
{% block content %}{% endblock %}
{% if uri not in ["/", "/blog/index"] and not "/blog/category" in uri %}
<br><br>
{{ leaderboard() }}
{% endif %}
{% if uri not in ["/", "/blog/index"] and not "/blog/category" in uri %}
<br><br>
{{ leaderboard() }}
{% endif %}
<div class="k-copyright">
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"] }} -
Hosted by <a href="https://www.digitalocean.com/?refcode=ea01734d3fc7">DigitalOcean</a><br>
Page generated in %time_elapsed%s.
</div>
</div>
</div>
<div class="k-copyright">
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"] }} -
Hosted by <a href="https://www.digitalocean.com/?refcode=ea01734d3fc7">DigitalOcean</a><br>
Page generated in %time_elapsed%s.
</div>
</div>
</div>
<div class="col-sm-2 col-sm-pull-10">
<div class="k-navpanel">
<a name="navbar"></a>
<div class="k-section">Kirsle</div>
<ul>
<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="/photos/albums">Photo Albums</a></li>
<li>&#0187; <a href="/wiki/Main-Page">Wiki</a></li>
<li>&#0187; <a href="/guestbook">Guestbook</a></li>
<li>&#0187; <a href="/contact">Contact Me</a></li>
</ul>
<div class="col-sm-2 col-sm-pull-10">
<div class="k-navpanel">
<a name="navbar"></a>
<div class="k-section">Kirsle</div>
<ul>
<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="/photos/albums">Photo Albums</a></li>
<li>&#0187; <a href="/wiki/Main-Page">Wiki</a></li>
<li>&#0187; <a href="/guestbook">Guestbook</a></li>
<li>&#0187; <a href="/contact">Contact Me</a></li>
</ul>
<div class="k-section">Channels</div>
<ul>
<li>&#0187; <a href="{{ url_for('blog.archive') }}">Blog Archives</a></li>
{{ include_page("blog.partial_tags")|safe }}
</ul>
<div class="k-section">Channels</div>
<ul>
<li>&#0187; <a href="{{ url_for('blog.archive') }}">Blog Archives</a></li>
{{ include_page("blog.partial_tags")|safe }}
</ul>
<div class="k-section">Creativity</div>
<ul>
<li>&#0187; <a href="/rendering">3D Renderings</a></li>
<li>&#0187; <a href="/flash">Flash Animation</a></li>
<li>&#0187; <a href="/javascript">JavaScript</a></li>
<li>&#0187; <a href="/fonts">Fonts</a></li>
<li>&#0187; <a href="/doc/">Tutorials</a></li>
<li>&#0187; <a href="/designs">Web Design</a></li>
</ul>
<div class="k-section">Creativity</div>
<ul>
<li>&#0187; <a href="/rendering">3D Renderings</a></li>
<li>&#0187; <a href="/flash">Flash Animation</a></li>
<li>&#0187; <a href="/javascript">JavaScript</a></li>
<li>&#0187; <a href="/fonts">Fonts</a></li>
<li>&#0187; <a href="/doc/">Tutorials</a></li>
<li>&#0187; <a href="/designs">Web Design</a></li>
</ul>
<div class="k-section">Software</div>
<ul>
<li>&#0187; <a href="/rivescript">RiveScript</a></li>
<li>&#0187; <a href="/errorgen">Error Generator</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="/pccc">CyanChat Client</a></li>
</ul>
<div class="k-section">Software</div>
<ul>
<li>&#0187; <a href="/rivescript">RiveScript</a></li>
<li>&#0187; <a href="/errorgen">Error Generator</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="/pccc">CyanChat Client</a></li>
</ul>
<div class="k-section">Web Tools</div>
<ul>
<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/fader.cgi">Text Fader</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/translator.html">Azulian Translater</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>
</ul>
<div class="k-section">Web Tools</div>
<ul>
<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/fader.cgi">Text Fader</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/translator.html">Azulian Translater</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>
</ul>
<div class="k-section">Subdomains</div>
<ul>
<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://rophako.kirsle.net/">Rophako CMS</a></li>
<li>&#0187; <a href="http://mc.kirsle.net/">Minecraft Server</a></li>
</ul>
<div class="k-section">Subdomains</div>
<ul>
<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://rophako.kirsle.net/">Rophako CMS</a></li>
<li>&#0187; <a href="http://mc.kirsle.net/">Minecraft Server</a></li>
</ul>
<div class="k-section">Miscellany</div>
<ul>
<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="/raspberrypi">Raspberry Pi</a></li>
</ul>
<div class="k-section">Miscellany</div>
<ul>
<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="/raspberrypi">Raspberry Pi</a></li>
</ul>
<div class="k-section">Links</div>
<ul>
<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://myspace.com/kirsle">MySpace</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="https://www.npmjs.org/~kirsle">npm</a></li>
</ul>
<div class="k-section">Links</div>
<ul>
<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://myspace.com/kirsle">MySpace</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="https://www.npmjs.org/~kirsle">npm</a></li>
</ul>
<br>
{{ nav_ads() }}
<br>
<br>
{{ nav_ads() }}
<br>
<div class="k-section">Fan Club</div>
<ul>
{% if session["login"] %}
<li>&#0164; Hi, <big>{{ session["name"] }}</big></li>
{% if session["role"] == "admin" %}
<li>&#0187; <a href="{{ url_for('admin.index') }}">Admin Center</a></li>
{% endif %}
<li>&#0187; <a href="{{ url_for('blog.update') }}">Update Blog</a></li>
{% if "impersonator" in session %}
<li>&#0187; <a href="{{ url_for('admin.unimpersonate') }}">Unimpersonate</a></li>
{% endif %}
<li>&#0187; <a href="{{ url_for('account.logout') }}">Log Out</a>
{% else %}
<li id="login-link">&#0187; <a href="{{ url_for('account.login') }}" class="login-link">Log In</a></li>
{% endif %}
</ul>
<div id="login-inline" style="display: none">
<form action="{{ url_for('account.login') }}" method="POST">
<input type="hidden" name="token" value="{{ csrf_token() }}">
<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="password" class="form-control" size="4" name="password" style="display: inline; width: 45%">
<br>
<button type="submit" class="btn btn-primary" style="width: 100%">Log In</button>
</form>
</div>
<div class="k-section">Fan Club</div>
<ul>
{% if session["login"] %}
<li>&#0164; Hi, <big>{{ session["name"] }}</big></li>
{% if session["role"] == "admin" %}
<li>&#0187; <a href="{{ url_for('admin.index') }}">Admin Center</a></li>
{% endif %}
<li>&#0187; <a href="{{ url_for('blog.update') }}">Update Blog</a></li>
{% if "impersonator" in session %}
<li>&#0187; <a href="{{ url_for('admin.unimpersonate') }}">Unimpersonate</a></li>
{% endif %}
<li>&#0187; <a href="{{ url_for('account.logout') }}">Log Out</a>
{% else %}
<li id="login-link">&#0187; <a href="{{ url_for('account.login') }}" class="login-link">Log In</a></li>
{% endif %}
</ul>
<div id="login-inline" style="display: none">
<form action="{{ url_for('account.login') }}" method="POST">
<input type="hidden" name="token" value="{{ csrf_token() }}">
<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="password" class="form-control" size="4" name="password" style="display: inline; width: 45%">
<br>
<button type="submit" class="btn btn-primary" style="width: 100%">Log In</button>
</form>
</div>
<!--
<div class="k-section">Visitors</div>
<ul>
<li>&#0164; <strong>Unique Visits:</strong><br>
Today: tracking["unique_today"] <br>
Total: tracking["unique_total"] </li>
<li>&#0164; <strong>Total Hits:</strong><br>
Today: tracking["hits_today"] <br>
Total: tracking["hits_total"] </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>
</ul>
-->
<!--
<div class="k-section">Visitors</div>
<ul>
<li>&#0164; <strong>Unique Visits:</strong><br>
Today: tracking["unique_today"] <br>
Total: tracking["unique_total"] </li>
<li>&#0164; <strong>Total Hits:</strong><br>
Today: tracking["hits_today"] <br>
Total: tracking["hits_total"] </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>
</ul>
-->
<div class="center">
<a href="https://www.python.org/" target="_blank">
<img src="/static/images/python.png" width="80" height="15" alt="Python powered">
</a><br>
<div class="center">
<a href="https://www.python.org/" target="_blank">
<img src="/static/images/python.png" width="80" height="15" alt="Python powered">
</a><br>
<a href="http://validator.w3.org/check?uri=referer">
<img src="/static/images/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br>
<a href="http://validator.w3.org/check?uri=referer">
<img src="/static/images/html5.png" width="80" height="15" alt="W3C Valid HTML5">
</a><br>
<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">
</a><p>
<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">
</a><p>
<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">
</a>
</div>
<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">
</a>
</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/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".login-link").click(function() {
$("#login-link").hide();
$("#login-inline").show(500);
return false;
});
});
$(document).ready(function() {
$(".login-link").click(function() {
$("#login-link").hide();
$("#login-inline").show(500);
return false;
});
});
</script>
{% block scripts %}{% endblock %}
@ -250,11 +250,11 @@
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.kirsle.net/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.kirsle.net/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<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:
<ul>
<li>CD-ROM driver</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>SoundBlaster 16 as a CD image (requires the CD-ROM driver)</li>
<li>CD-ROM driver</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>SoundBlaster 16 as a CD image (requires the CD-ROM driver)</li>
</ul>
&#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>
{{ include_page("comment.partial_index",
thread="blog-42",
subject="MS-DOS",
header=False,
thread="blog-42",
subject="MS-DOS",
header=False,
) | safe }}
{% endblock %}

View File

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

View File

@ -28,10 +28,10 @@ export XXL_XMODMAP_DISABLE=1
/usr/bin/xfce4-session</pre>
<ul>
<li>Use <code>vncpasswd</code> to set a password.</li>
<li>Use <code>vncserver</code> to start a VNC server (defaults to display :1
for the first server)</li>
<li>Use <code>vncserver -kill :1</code> to kill a server.
<li>Use <code>vncpasswd</code> to set a password.</li>
<li>Use <code>vncserver</code> to start a VNC server (defaults to display :1
for the first server)</li>
<li>Use <code>vncserver -kill :1</code> to kill a server.
</ul>
<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...
<ul>
<li>adm</li>
<li>dialout</li>
<li>cdrom</li>
<li>sudo</li>
<li>audio</li>
<li>video</li>
<li>plugdev</li>
<li>games</li>
<li>users</li>
<li>netdev</li>
<li>input</li>
<li>adm</li>
<li>dialout</li>
<li>cdrom</li>
<li>sudo</li>
<li>audio</li>
<li>video</li>
<li>plugdev</li>
<li>games</li>
<li>users</li>
<li>netdev</li>
<li>input</li>
</ul>
<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.
{{ include_page("comment.partial_index",
thread="article-raspberrypi",
subject="Raspberry Pi",
thread="article-raspberrypi",
subject="Raspberry Pi",
) | safe }}
{% 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>
<table border="0" cellspacing="10" cellpadding="0">
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/kawar.jpg">
<img src="/creativity/rendered/kawar-thumb.jpg"
width="300" height="225" alt="Kanian/Azulian War" class="portrait">
</a><br>
Resolution: 800x600
</td>
<td align="left" valign="top">
<h2 class="top">Kanian/Azulian War</h2>
I made this in one of my high school CAD classes. It's
a 3D rendering of a scene from the Kanian/Azulian War.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/kanian.jpg">
<img src="/creativity/rendered/kanian-thumb.jpg"
width="300" height="225" alt="Kanians" class="portrait">
</a><br>
Resolution: 800x600
</td>
<td align="left" valign="top">
<h2 class="top">The Kanians</h2>
I also made this in one of my high school CAD classes.
It's just an artsy picture of the Kanians, showing the
evil, neutral, and angelic varieties.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/bob.jpg">
<img src="/creativity/rendered/bob-thumb.jpg"
width="300" height="225" alt="Bob-Omb Battlefield" class="portrait">
</a><br>
Resolution: 800x600
</td>
<td align="left" valign="top">
<h2 class="top">Bob-Omb Battlefield</h2>
This originally started out to be just a gang of shiny
Bob-Ombs. The next idea was to put them on a bright green
Mario64-style terrain, and then it was only natural to
create some of the other Mario baddies and throw them in
there. Those include the Chain Chomp and Goombas, and also
a life mushroom and a warp pipe.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/hotel.jpg">
<img src="/creativity/rendered/hotel-thumb.jpg"
width="300" height="225" alt="Hotel Suite" class="portrait">
</a><br>
Resolution: 720x540
</td>
<td align="left" valign="top">
<h2 class="top">Hotel Suite</h2>
I made this for my MITES project in my senior year CAD
class. It got me 1st place in the regional competition
and 4th in the state competition, and also a "Best of
Architectural Award" on the regional. I didn't even take
architectural CAD, which makes it that much cooler that
I got that award.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/battlefield.jpg">
<img src="/creativity/rendered/battlefield-thumb.jpg"
width="300" height="225" alt="Virtual Battlefield" class="portrait">
</a><br>
Resolution: 1024x768
</td>
<td align="left" valign="top">
<h2 class="top">Virtual Battlefield</h2>
I made this one just for fun. It's a virtual battlefield
being "materialized" into existence. You can even see some
of the wire frame in the parts that hadn't been materialized
yet. It's kinda <em>Code Lyoko</em> style.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/island.jpg">
<img src="/creativity/rendered/island-thumb.jpg"
width="300" height="225" alt="Island Invasion" class="portrait">
</a><br>
Resolution: 1024x768
</td>
<td align="left" valign="top">
<h2 class="top">Island Invasion</h2>
During my first quarter of college, I had this really lame
class called <em>Problem Solving</em>. During a particularly
slow day, I discovered the school computers had AutoCAD and
3DS Max, and I created and rendered this drawing before the
end of class that day.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/nupiter.jpg">
<img src="/creativity/rendered/nupiter-thumb.jpg"
width="300" height="225" alt="Sunrise on Nupiter">
</a><br>
Resolution: 1024x768
</td>
<td align="left" valign="top">
<h2 class="top">Sunrise on Nupiter</h2>
This one was actually drawn entirely in Photoshop, but it
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
of some unknown planet. The planet itself was taken from a desert
scene (with any plant life photoshopped out).
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/kawar.jpg">
<img src="/creativity/rendered/kawar-thumb.jpg"
width="300" height="225" alt="Kanian/Azulian War" class="portrait">
</a><br>
Resolution: 800x600
</td>
<td align="left" valign="top">
<h2 class="top">Kanian/Azulian War</h2>
I made this in one of my high school CAD classes. It's
a 3D rendering of a scene from the Kanian/Azulian War.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/kanian.jpg">
<img src="/creativity/rendered/kanian-thumb.jpg"
width="300" height="225" alt="Kanians" class="portrait">
</a><br>
Resolution: 800x600
</td>
<td align="left" valign="top">
<h2 class="top">The Kanians</h2>
I also made this in one of my high school CAD classes.
It's just an artsy picture of the Kanians, showing the
evil, neutral, and angelic varieties.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/bob.jpg">
<img src="/creativity/rendered/bob-thumb.jpg"
width="300" height="225" alt="Bob-Omb Battlefield" class="portrait">
</a><br>
Resolution: 800x600
</td>
<td align="left" valign="top">
<h2 class="top">Bob-Omb Battlefield</h2>
This originally started out to be just a gang of shiny
Bob-Ombs. The next idea was to put them on a bright green
Mario64-style terrain, and then it was only natural to
create some of the other Mario baddies and throw them in
there. Those include the Chain Chomp and Goombas, and also
a life mushroom and a warp pipe.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/hotel.jpg">
<img src="/creativity/rendered/hotel-thumb.jpg"
width="300" height="225" alt="Hotel Suite" class="portrait">
</a><br>
Resolution: 720x540
</td>
<td align="left" valign="top">
<h2 class="top">Hotel Suite</h2>
I made this for my MITES project in my senior year CAD
class. It got me 1st place in the regional competition
and 4th in the state competition, and also a "Best of
Architectural Award" on the regional. I didn't even take
architectural CAD, which makes it that much cooler that
I got that award.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/battlefield.jpg">
<img src="/creativity/rendered/battlefield-thumb.jpg"
width="300" height="225" alt="Virtual Battlefield" class="portrait">
</a><br>
Resolution: 1024x768
</td>
<td align="left" valign="top">
<h2 class="top">Virtual Battlefield</h2>
I made this one just for fun. It's a virtual battlefield
being "materialized" into existence. You can even see some
of the wire frame in the parts that hadn't been materialized
yet. It's kinda <em>Code Lyoko</em> style.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/island.jpg">
<img src="/creativity/rendered/island-thumb.jpg"
width="300" height="225" alt="Island Invasion" class="portrait">
</a><br>
Resolution: 1024x768
</td>
<td align="left" valign="top">
<h2 class="top">Island Invasion</h2>
During my first quarter of college, I had this really lame
class called <em>Problem Solving</em>. During a particularly
slow day, I discovered the school computers had AutoCAD and
3DS Max, and I created and rendered this drawing before the
end of class that day.
</td>
</tr>
<tr>
<td align="center" valign="top">
<a href="/creativity/rendered/nupiter.jpg">
<img src="/creativity/rendered/nupiter-thumb.jpg"
width="300" height="225" alt="Sunrise on Nupiter">
</a><br>
Resolution: 1024x768
</td>
<td align="left" valign="top">
<h2 class="top">Sunrise on Nupiter</h2>
This one was actually drawn entirely in Photoshop, but it
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
of some unknown planet. The planet itself was taken from a desert
scene (with any plant life photoshopped out).
</td>
</tr>
</table>
{% endblock %}

View File

@ -5,113 +5,113 @@
<h1>RiveScript</h1>
<ul>
<li><a href="#intro">Project Description</a></li>
<li><a href="#site">Project Website</a></li>
<li><a href="#history">History</a></li>
<li><a href="#intro">Project Description</a></li>
<li><a href="#site">Project Website</a></li>
<li><a href="#history">History</a></li>
</ul>
<a name="intro"></a>
<img src="projects/RiveScript/logo.png" alt="RiveScript" width="400" height="90">
<h2>Project Description</h2>
<a name="intro"></a>
<img src="projects/RiveScript/logo.png" alt="RiveScript" width="400" height="90">
<h2>Project Description</h2>
<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,
easy to learn format and it could be argued that it's more powerful than AIML (Artificial Intelligence
Markup Language).<p>
<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,
easy to learn format and it could be argued that it's more powerful than AIML (Artificial Intelligence
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>
And can get into some more complicated things like this:
And can get into some more complicated things like this:
<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;!
<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; == &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;formal&gt; =&gt; &lt;set name=&lt;formal&gt;&gt;Did you get a name change?</pre>
<a name="site"></a>
<h2>Project Website</h2>
<a name="site"></a>
<h2>Project Website</h2>
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>
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>
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>
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 name="history"></a>
<h2>History</h2>
<a name="history"></a>
<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,
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
many other would-be botmasters start. RunABot used AIML (Artificial Intelligence Markup Language)
as their method of programming replies for the bots.<p>
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.
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)
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
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
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
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
infamous Warning system that AIM has.
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.
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
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
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.
<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
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
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
with the more simplistic languages of JavaScript and HTML.<p>
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,
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
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>
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
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.
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
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.
<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
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
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>
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
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
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
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,
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:
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
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 lines of text. The basic idea was that the language should look like this:
<pre>+ hello bot
<pre>+ hello bot
- Hello human!</pre>
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,
topics, and a lot of the other cool things that AIML can do.
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,
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>,
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
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>
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
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,
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
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
from AIML.
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,
and the logic of the program didn't allow for complicated things that would rival the &lt;that&gt; tag
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;pattern&gt;ASK ME A QUESTION&lt;/pattern&gt;
@ -133,48 +133,48 @@ What is its name?
&lt;/template&gt;
&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
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
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
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".
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
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.
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
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
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
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>
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>
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
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
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 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,
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
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>
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
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.
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>,
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
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
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
over what the old language was capable of, and I began development of a new RiveScript
module to meet these new standards.<p>
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
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
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
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
module to meet these new standards.<p>
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
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
programs.
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
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
programs.
{% endblock %}

View File

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