{% endif %}
diff --git a/www/designs/index.html b/www/designs/index.html
index a5c43f9..c056e39 100644
--- a/www/designs/index.html
+++ b/www/designs/index.html
@@ -8,122 +8,122 @@ Here you can find an archive of some past web designs used for my personal
website, in chronological order.
- 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.
-
+ 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.
+
- 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.
+ 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.
- I actually lost my copy of this template and had to dig it up on
- The Internet Archive and piece it
- back together.
-
+ I actually lost my copy of this template and had to dig it up on
+ The Internet Archive and piece it
+ back together.
+
- 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.
+ 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.
- This design went live on Kirsle.net on May 12, 2010.
- Relevant blog post.
-
+ This design went live on Kirsle.net on May 12, 2010.
+ Relevant blog post.
+
- Another design refresh that uses Twitter Bootstrap as the layout engine,
- improving compatibility with mobile browsers. This design went live on
- October 15, 2014.
-
+ Another design refresh that uses Twitter Bootstrap as the layout engine,
+ improving compatibility with mobile browsers. This design went live on
+ October 15, 2014.
+
@@ -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;
+// }
+// }
+// }
+// }
// }
diff --git a/www/designs/solar-bootstrap/index.html b/www/designs/solar-bootstrap/index.html
index 353400b..d4bbacf 100644
--- a/www/designs/solar-bootstrap/index.html
+++ b/www/designs/solar-bootstrap/index.html
@@ -1,222 +1,222 @@
- 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.
+ 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.
- This design went live on Kirsle.net on October 15, 2014. It replaced
- the previous version of the Solar theme.
+ This design went live on Kirsle.net on October 15, 2014. It replaced
+ the previous version of the Solar theme.
-
Heading Level 2
+
Heading Level 2
- 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.
+ 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.
- 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.
-
Preformatted
- T e x t . i
+
Preformatted
+ T e x t . i
-
Heading Level 3
+
Heading Level 3
- 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.
+ 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.
- 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.
-
Heading Level 4
+
Heading Level 4
- 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.
+ 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.
- 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.
-
- 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.
+ 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.
- 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.
+ 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.
- 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.
-
Preformatted
- T e x t . i
+
Preformatted
+ T e x t . i
-
Heading Level 3
+
Heading Level 3
- 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.
+ 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.
- 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.
-
Heading Level 4
+
Heading Level 4
- 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.
+ 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.
- 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.
-
- 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.
+ 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.
- 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 Cosmos theme.
+ 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 Cosmos theme.
- 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.
+ 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.
- 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.
-
Preformatted
- T e x t . i
+
Preformatted
+ T e x t . i
-
Heading Level 3
+
Heading Level 3
- 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.
+ 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.
- 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.
-
Heading Level 4
+
Heading Level 4
- 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.
+ 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.
- 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.
-
@@ -255,10 +255,10 @@
diff --git a/www/designs/starburst/index.html b/www/designs/starburst/index.html
index 978c976..0d389fa 100644
--- a/www/designs/starburst/index.html
+++ b/www/designs/starburst/index.html
@@ -33,7 +33,7 @@ And yet more text.
And some more. And also:
##########################################################
# 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:
// 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;
// }
diff --git a/www/designs/storm/index.html b/www/designs/storm/index.html
index e2e3eff..983aa68 100644
--- a/www/designs/storm/index.html
+++ b/www/designs/storm/index.html
@@ -34,7 +34,7 @@
And some more. And also:
- You are about to download the file {{ file }} from the
- project {{ project }}. This file has been downloaded
- {{ hits }} time(s).
+ You are about to download the file {{ file }} from the
+ project {{ project }}. This file has been downloaded
+ {{ hits }} time(s).
-
Download
+
Download
- To continue your download, click on the button below.
-
+ To continue your download, click on the button below.
+
-
+
+
+
+
{% elif method == "get" %}
-
Downloading File...
+
Downloading File...
- Your download of {{ file }} will begin shortly. If it doesn't,
- download it directly.
+ Your download of {{ file }} will begin shortly. If it doesn't,
+ download it directly.
{% endif %}
{% endblock %}
{% block scripts %}
- {% if method == "get" %}
-
- {% endif %}
+ {% if method == "get" %}
+
+ {% endif %}
{% endblock %}
\ No newline at end of file
diff --git a/www/errorgen.html b/www/errorgen.html
index 59a4b6c..54e766d 100644
--- a/www/errorgen.html
+++ b/www/errorgen.html
@@ -5,144 +5,144 @@
- The Error Message Generator (ErrorGen) is a simple
- program that generates customized error dialogs. The idea was inspired
- by a web-based error generator which created images of error
- boxes. My program, however, creates "real" error boxes that can be
- dragged around the screen and interacted with.
+ The Error Message Generator (ErrorGen) is a simple
+ program that generates customized error dialogs. The idea was inspired
+ by a web-based error generator which created images of error
+ boxes. My program, however, creates "real" error boxes that can be
+ dragged around the screen and interacted with.
- The command-line, scriptable version of Error Message Generator is called
- ZenMsg, 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
+ ZenMsg, named after the GNOME utility, Zenity. It's
+ a version of the generator that can be provoked from batch files and
+ scripts.
-
Features
+
Features
-
-
Fully customizable error box: select the title, icon,
- and message.
-
Create up to THREE buttons for the error box and specify
- what each of them say, and which ones are "greyed out"
-
Advanced features to make the error keep coming back until
- the right button is selected.
+
+
Fully customizable error box: select the title, icon,
+ and message.
+
Create up to THREE buttons for the error box and specify
+ what each of them say, and which ones are "greyed out"
+
Advanced features to make the error keep coming back until
+ the right button is selected.
-
A button that minimizes and renames the control window,
- leaving only the error dialog visible on screen.
-
+
A button that minimizes and renames the control window,
+ leaving only the error dialog visible on screen.
+
-
-
Screenshots
+
+
Screenshots
-
-
-
+
+
+
-
-
-
- ErrorGen in action, surrounded by example error messages.
- (click for a larger version)
-
-
-
+
+
+
+ ErrorGen in action, surrounded by example error messages.
+ (click for a larger version)
+
+
+
-
-
ZenMsg
+
+
ZenMsg
- 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:
-
- The executable comes with an HTML help file. ZenMsg -?
- will display the same help file at the command line. The document
- describes how to use ZenMsg.
+ The executable comes with an HTML help file. ZenMsg -?
+ will display the same help file at the command line. The document
+ describes how to use ZenMsg.
- 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
- Zenity. 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
+ Zenity. Source code
+ is available on the Downloads tab.
-
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.
+ 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.
-
-
Downloads
+
+
Downloads
- 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.
-
- The following are all the distributions available for this software,
- starting with the most recent. Source code is also available for all
- versions.
+ The following are all the distributions available for this software,
+ starting with the most recent. Source code is also available for all
+ versions.
-
+
Release
Windows EXE
diff --git a/www/firered.html b/www/firered.html
index dc623f0..9ac5405 100644
--- a/www/firered.html
+++ b/www/firered.html
@@ -9,597 +9,597 @@ Break Pokemon FireRed Version. I decided a good place to begin my quest woul
Palette Town. This is what happened...
{% set pages = {
- "1": "Getting to Fuchsia City",
- "2": "Level Grinding on Silence Bridge",
- "3": "On the Road to Cerulean City",
- "4": "Breaking Mt. Moon"
+ "1": "Getting to Fuchsia City",
+ "2": "Level Grinding on Silence Bridge",
+ "3": "On the Road to Cerulean City",
+ "4": "Breaking Mt. Moon"
} %}
{% for i in pages|sort %}
- {% set link = pages[i] %}
+ {% set link = pages[i] %}
-
- {% if i == page %}
- Part {{ i }} - {{ link }}
- {% else %}
- Part {{ i }} - {{ link }}
- {% endif %}
-
+
+ {% if i == page %}
+ Part {{ i }} - {{ link }}
+ {% else %}
+ Part {{ i }} - {{ link }}
+ {% endif %}
+
- In the zoo in Fuchsia City in front of the
- Safari Zone, there is an extinct Pokemon. This Pokemon will be either
- Omanyte or Kabuto -- which one it is depends on which fossil you chose in
- Mt. Moon. So the question was, If you could get to Fuchsia City without
- having chosen a fossil, what Pokemon would be shown at the zoo?
+ In the zoo in Fuchsia City in front of the
+ Safari Zone, there is an extinct Pokemon. This Pokemon will be either
+ Omanyte or Kabuto -- which one it is depends on which fossil you chose in
+ Mt. Moon. So the question was, If you could get to Fuchsia City without
+ having chosen a fossil, what Pokemon would be shown at the zoo?
-
-
-
+
+
+
- So, I set out to sequence break Pokemon Fire Red version. I decided to
- use walk through walls cheats to get to Fuchsia City as soon as it was
- convenient. I had to play the game long enough to get a starter Pokemon
- (I chose Charmander) and a Pokedex, because the game does extremely
- weird things if you cheat and start battling and capturing Pokemon
- without having these two items first.
+ So, I set out to sequence break Pokemon Fire Red version. I decided to
+ use walk through walls cheats to get to Fuchsia City as soon as it was
+ convenient. I had to play the game long enough to get a starter Pokemon
+ (I chose Charmander) and a Pokedex, because the game does extremely
+ weird things if you cheat and start battling and capturing Pokemon
+ without having these two items first.
-
-
- My level 7 Charmander.
-
+
+
+ My level 7 Charmander.
+
- So, enable the cheat codes and get out of Palette Town!
+ So, enable the cheat codes and get out of Palette Town!
-
-
- The Walk Thru Walls cheat and Level 1 Wild Pokemon
-
+
+
+ The Walk Thru Walls cheat and Level 1 Wild Pokemon
+
- I couldn't find a cheat code that would disable random battles entirely,
- so I used a "Level 1 Pokemon" cheat so any random battles I do get into
- will be with Pokemon of reasonable levels.
+ I couldn't find a cheat code that would disable random battles entirely,
+ so I used a "Level 1 Pokemon" cheat so any random battles I do get into
+ will be with Pokemon of reasonable levels.
-
Getting to Fuchsia City
+
Getting to Fuchsia City
-
-
- Walking south towards Cinnabar Island.
+
+
+ Walking south towards Cinnabar Island.
-
- A wild Tentacool decided to fight me. Good thing it's only Level 1.
+
+ A wild Tentacool decided to fight me. Good thing it's only Level 1.
-
- Finally arrived at Cinnabar Island.
+
+ Finally arrived at Cinnabar Island.
-
- Cinnabar Island with no badges and only 1 Pokemon!
+
+ Cinnabar Island with no badges and only 1 Pokemon!
-
- Finally arrived in Fuchsia City.
-
+
+ Finally arrived in Fuchsia City.
+
- Now that we've finally arrived in Fuchsia City, let's check out the zoo
- and see what extinct Pokemon is there!
+ Now that we've finally arrived in Fuchsia City, let's check out the zoo
+ and see what extinct Pokemon is there!
-
-
- Looks like the default is a Kabuto. Mystery solved!
-
+
+
+ Looks like the default is a Kabuto. Mystery solved!
+
- If you didn't choose a fossil Pokemon, it looks like the default is
- to show Kabuto in the zoo. Remember that ordinarily it's not supposed
- to be possible to get to Fuchsia City without having chosen one of the
- fossils, because the fossils block your path through Mt. Moon.
+ If you didn't choose a fossil Pokemon, it looks like the default is
+ to show Kabuto in the zoo. Remember that ordinarily it's not supposed
+ to be possible to get to Fuchsia City without having chosen one of the
+ fossils, because the fossils block your path through Mt. Moon.
-
Getting Caught Up
+
Getting Caught Up
- Now that we're in Fuchsia City, can we try to continue the game from
- here without cheating any more? We should be able to! I only have
- a level 7 Charmander and every Pokemon in this part of Kanto is around
- level 30, so what can I do about that?
+ Now that we're in Fuchsia City, can we try to continue the game from
+ here without cheating any more? We should be able to! I only have
+ a level 7 Charmander and every Pokemon in this part of Kanto is around
+ level 30, so what can I do about that?
- Use the Safari Zone! I can catch wild Pokemon here without having to
- battle them, and the Pokemon levels will be comparable to the average
- level of Pokemon in the Fuchsia City area.
+ Use the Safari Zone! I can catch wild Pokemon here without having to
+ battle them, and the Pokemon levels will be comparable to the average
+ level of Pokemon in the Fuchsia City area.
-
-
- And I have $3,024 to spend on the Safari Zone game!
+
+
+ And I have $3,024 to spend on the Safari Zone game!
-
- Entering the Safari Zone!
+
+ Entering the Safari Zone!
-
- The first wild Pokemon I run into is a Lv31 Nidorino!
+
+ The first wild Pokemon I run into is a Lv31 Nidorino!
-
- Captured!
-
+
+ Captured!
+
- Remember also that the Safari Zone contains the Surf HM. But, I
- can't use Surf outside of battle until I defeat the Fuchsia City
- gym leader. Good thing I'm in Fuchsia City!
+ Remember also that the Safari Zone contains the Surf HM. But, I
+ can't use Surf outside of battle until I defeat the Fuchsia City
+ gym leader. Good thing I'm in Fuchsia City!
-
-
- I found the Surf HM inside the Safari Zone.
-
+
+
+ I found the Surf HM inside the Safari Zone.
+
- From the Safari Zone, I've captured a Nidorino, Ryhorn, Nidoran♀,
- Paras, Exeggcute, and Venomoth. Unfortunately none of my Pokemon are
- able to learn Surf, so even if I do defeat the Fuchsia City gym leader,
- how will I escape?
+ From the Safari Zone, I've captured a Nidorino, Ryhorn, Nidoran♀,
+ Paras, Exeggcute, and Venomoth. Unfortunately none of my Pokemon are
+ able to learn Surf, so even if I do defeat the Fuchsia City gym leader,
+ how will I escape?
- But wait! There's a Fishing Guru in Fuchsia City! I can get a fishing
- rod from him!
+ But wait! There's a Fishing Guru in Fuchsia City! I can get a fishing
+ rod from him!
-
-
- I got the Good Rod.
-
+
+
+ I got the Good Rod.
+
- I was wondering for a minute how the fishing rods worked. Ordinarily you
- find the first Fishing Guru in Vermilion City, and you get the Old Rod
- which can only catch Magikarp. Then you get the Good Rod from Fuchsia
- City which can catch Goldeen, Poliwag and Magikarp. And then the Super
- Rod can catch more Pokemon.
+ I was wondering for a minute how the fishing rods worked. Ordinarily you
+ find the first Fishing Guru in Vermilion City, and you get the Old Rod
+ which can only catch Magikarp. Then you get the Good Rod from Fuchsia
+ City which can catch Goldeen, Poliwag and Magikarp. And then the Super
+ Rod can catch more Pokemon.
- I was wondering if maybe the rods were incremental, and that the Fuchsia
- City Fishing Guru would give me the Old Rod since I talked to him first.
- But apparently the rods are hard-coded, so I got the Good Rod. With this
- I caught myself a Level 10 Goldeen from the pond in the Fishing Guru's
- back yard.
+ I was wondering if maybe the rods were incremental, and that the Fuchsia
+ City Fishing Guru would give me the Old Rod since I talked to him first.
+ But apparently the rods are hard-coded, so I got the Good Rod. With this
+ I caught myself a Level 10 Goldeen from the pond in the Fishing Guru's
+ back yard.
-
-
- My party so far...
-
+
+
+ My party so far...
+
- Before taking on the Fuchsia City gym, I need to level up my Pokemon
- some more. The best place to do that is to head out on Route 15.
+ Before taking on the Fuchsia City gym, I need to level up my Pokemon
+ some more. The best place to do that is to head out on Route 15.
-
-
- Route 15 from Fuchsia City to Lavender Town.
-
+
+
+ Route 15 from Fuchsia City to Lavender Town.
+
- My Charmander is too weak to battle, but my other Pokemon aren't. I
- can power-level Charmander by putting it out first in battle and then
- switching it with someone else. The first few battles caused Charmander
- to level up 2 or 3 times at once. Three short battles later, and...
+ My Charmander is too weak to battle, but my other Pokemon aren't. I
+ can power-level Charmander by putting it out first in battle and then
+ switching it with someone else. The first few battles caused Charmander
+ to level up 2 or 3 times at once. Three short battles later, and...
> Continue to Part 2 - {{ pages["2"] }}
+ {% endif %}
{% endif %}
{% if page == "2" or page == "full" %}
-
Level Grinding on Silence Bridge
+
Level Grinding on Silence Bridge
- After battling my way through the Bikers and Bird Catchers, I finally
- made my way to the bottom of Silence Bridge.
+ After battling my way through the Bikers and Bird Catchers, I finally
+ made my way to the bottom of Silence Bridge.
-
-
-
-
- Silence Bridge - Route 12.
-
+
+
+
+
+ Silence Bridge - Route 12.
+
- It's a straight shot north to Lavender Town!
+ It's a straight shot north to Lavender Town!
-
-
- The Fishing Guru's house.
-
+
+
+ The Fishing Guru's house.
+
- I found the other Fishing Guru's house and got a Super Rod. With
- this I can catch Dratini in the Safari Zone. Dragon Pokemon are
- cool, right? And I don't even have a single gym badge yet!
+ I found the other Fishing Guru's house and got a Super Rod. With
+ this I can catch Dratini in the Safari Zone. Dragon Pokemon are
+ cool, right? And I don't even have a single gym badge yet!
-
-
- A sleeping Pokemon blocks the way!
-
+
+
+ A sleeping Pokemon blocks the way!
+
- And, here's Snorlax. This Pokemon blocks my access to Lavender
- Town to the north, and Vermilion City to the west. I can't get
- a PokeFlute to wake up Snorlax until I've already been to
- Lavender Town and Celadon City.
+ And, here's Snorlax. This Pokemon blocks my access to Lavender
+ Town to the north, and Vermilion City to the west. I can't get
+ a PokeFlute to wake up Snorlax until I've already been to
+ Lavender Town and Celadon City.
- But look! I could Surf right around Snorlax and get to Lavender
- Town! Now I have my plan. I just need to defeat the Fuchsia
- City Gym Leader, teach my Goldeen how to Surf, Surf around the
- Snorlax and get to Lavender Town!
+ But look! I could Surf right around Snorlax and get to Lavender
+ Town! Now I have my plan. I just need to defeat the Fuchsia
+ City Gym Leader, teach my Goldeen how to Surf, Surf around the
+ Snorlax and get to Lavender Town!
-
-
- My party so far...
-
+
+
+ My party so far...
+
- My Exeggcute knows Confusion, which is Super Effective against
- poison type Pokemon. The Fuchsia City gym is full of poison types,
- so Exeggcute is my best bet for beating the gym leader.
+ My Exeggcute knows Confusion, which is Super Effective against
+ poison type Pokemon. The Fuchsia City gym is full of poison types,
+ so Exeggcute is my best bet for beating the gym leader.
-
-
- Used Exeggcute to defeat Koga, the gym leader.
-
+
+
+ Used Exeggcute to defeat Koga, the gym leader.
+
- Now I can Surf around Snorlax! I caught a Level 10 Goldeen with
- the Good Rod, now let's teach it how to Surf.
+ Now I can Surf around Snorlax! I caught a Level 10 Goldeen with
+ the Good Rod, now let's teach it how to Surf.
-
-
-
- Sequence breaking at its finest.
+
+
+
+ Sequence breaking at its finest.
-
- Welcome to Lavender Town!
-
+
+ Welcome to Lavender Town!
+
- Now that we've gotten to Lavender Town, it will be really easy
- to get back on track. At this point we can Surf, but we still
- don't have any Pokemon that knows how to Cut. But we can easily
- find our way back to Vermilion City and Cerulean City from here!
- Just watch...
+ Now that we've gotten to Lavender Town, it will be really easy
+ to get back on track. At this point we can Surf, but we still
+ don't have any Pokemon that knows how to Cut. But we can easily
+ find our way back to Vermilion City and Cerulean City from here!
+ Just watch...
-
-
- Taking the Underground Path from Lavender Town to Celadon City.
+
+
+ Taking the Underground Path from Lavender Town to Celadon City.
-
- Here we are in Celadon City!
-
+
+ Here we are in Celadon City!
+
- Now I've made it to Celadon City. There's a lot of exciting things
- I can do here! For starters, I can buy a Leaf Stone to evolve my
- Exeggcute.
+ Now I've made it to Celadon City. There's a lot of exciting things
+ I can do here! For starters, I can buy a Leaf Stone to evolve my
+ Exeggcute.
-
-
- I bought myself a Leaf Stone.
+
+
+ I bought myself a Leaf Stone.
-
- I evolved Exeggcute with it! More power!
-
+
+ I evolved Exeggcute with it! More power!
+
- While I'm in Celadon City, I'd love to be able to get
- straight to the gym and completely destroy the Grass-type Pokemon
- there with my Charmeleon, but I can't get in!
+ While I'm in Celadon City, I'd love to be able to get
+ straight to the gym and completely destroy the Grass-type Pokemon
+ there with my Charmeleon, but I can't get in!
-
-
- I don't have Cut!
-
+
+
+ I don't have Cut!
+
- Rain check! I need to get to Cerulean City and defeat the water
- Pokemon gym leader to be allowed to use Cut, and I need to get
- to Vermilion City to actually get my hands on the Cut HM to teach
- it to one of my Pokemon!
+ Rain check! I need to get to Cerulean City and defeat the water
+ Pokemon gym leader to be allowed to use Cut, and I need to get
+ to Vermilion City to actually get my hands on the Cut HM to teach
+ it to one of my Pokemon!
-
-
-
+
+
+
- In the virtual Game Freak headquarters in Celadon City, you get
- the Hot Tea, which you then give to the guards that surround
- Saffron City and then they allow you into the city. Saffron City
- is the central hub between Cerulean City, Celadon City, Lavender
- Town, and Vermilion City. This will allow us to get back to all
- the major Kanto cities. Now we're getting back on track!
+ In the virtual Game Freak headquarters in Celadon City, you get
+ the Hot Tea, which you then give to the guards that surround
+ Saffron City and then they allow you into the city. Saffron City
+ is the central hub between Cerulean City, Celadon City, Lavender
+ Town, and Vermilion City. This will allow us to get back to all
+ the major Kanto cities. Now we're getting back on track!
-
-
- Giving the Hot Tea to the Saffron City guards...
+
+
+ Giving the Hot Tea to the Saffron City guards...
-
- Here we are in Saffron City!
-
+
+ Here we are in Saffron City!
+
- We've made it to Saffron City now, and we only have a single
- gym badge! :D
+ We've made it to Saffron City now, and we only have a single
+ gym badge! :D
- Now, the next place I should go is north to Cerulean City. You
- can get in to the city without Cut, but you can't get
- back out. I'll need to see Bill anyway to get the S.S. Ticket,
- so I can get the Cut HM from the S.S. Anne. So, north it is!
+ Now, the next place I should go is north to Cerulean City. You
+ can get in to the city without Cut, but you can't get
+ back out. I'll need to see Bill anyway to get the S.S. Ticket,
+ so I can get the Cut HM from the S.S. Anne. So, north it is!
-
-
- North to Cerulean City, south to Vermilion City.
-
+
+
+ North to Cerulean City, south to Vermilion City.
+
> Continue to Part 3 - {{ pages["3"] }}
+ {% endif %}
{% endif %}
{% if page == "3" or page == "full" %}
-
On the Road to Cerulean City
+
On the Road to Cerulean City
-
-
- The south border to Cerulean City.
-
+
+
+ The south border to Cerulean City.
+
- See, this is why you need Cut to get out of Cerulean City. I'm
- supposed to be on the other side of this wall. But,
- somebody's stupid Slowbro is in the way anyway.
+ See, this is why you need Cut to get out of Cerulean City. I'm
+ supposed to be on the other side of this wall. But,
+ somebody's stupid Slowbro is in the way anyway.
-
-
- This is how you get into Cerulean City.
-
+
+
+ This is how you get into Cerulean City.
+
- I'm not supposed to be on top of this ledge. When I jump down,
- I'll be stuck in Cerulean City until I complete the "go see
- Bill" side quest. But, I must see Bill so that I can get the
- S.S. Ticket!
+ I'm not supposed to be on top of this ledge. When I jump down,
+ I'll be stuck in Cerulean City until I complete the "go see
+ Bill" side quest. But, I must see Bill so that I can get the
+ S.S. Ticket!
-
-
-
+
+
+
- Since the Cerulean City Gym is right here, let's go and beat
- Misty real quick so we'll be allowed to use Cut once
- we finally get it.
+ Since the Cerulean City Gym is right here, let's go and beat
+ Misty real quick so we'll be allowed to use Cut once
+ we finally get it.
-
-
- I know Rhyhorn is weak against Starmie, but c'mon.
-
+
+
+ I know Rhyhorn is weak against Starmie, but c'mon.
+
- Even Misty's strongest Pokemon is no chance against mine.
+ Even Misty's strongest Pokemon is no chance against mine.
-
-
- Thanks! This is what I came here for!
+
+
+ Thanks! This is what I came here for!
-
- Oh look, it's my rival, Blue!
-
+
+ Oh look, it's my rival, Blue!
+
- My rival Blue challenges you when you try to leave Cerulean
- City to see Bill to the north. Ordinarily, if you play the
- game properly, you're trapped in Cerulean City with nowhere
- to go but north.
+ My rival Blue challenges you when you try to leave Cerulean
+ City to see Bill to the north. Ordinarily, if you play the
+ game properly, you're trapped in Cerulean City with nowhere
+ to go but north.
- Blue's Pokemon though are super weak compared to mine.
- Completely destroying him takes no effort at all. And then
- I'm off to see Bill, destroying any trainer who gets in my
- way.
+ Blue's Pokemon though are super weak compared to mine.
+ Completely destroying him takes no effort at all. And then
+ I'm off to see Bill, destroying any trainer who gets in my
+ way.
-
-
- I got the S.S. Ticket from Bill here.
-
+
+
+ I got the S.S. Ticket from Bill here.
+
- And with the S.S. Ticket, I'm able to get out of Cerulean City
- and head south. I cut through Saffron City instead of taking
- the underground tunnel and arrive in Vermilion City.
+ And with the S.S. Ticket, I'm able to get out of Cerulean City
+ and head south. I cut through Saffron City instead of taking
+ the underground tunnel and arrive in Vermilion City.
-
-
- Welcome to Vermilion City!
+
+
+ Welcome to Vermilion City!
-
- I head straight for the S.S. Anne to get my Cut HM.
-
+
+ I head straight for the S.S. Anne to get my Cut HM.
+
- Now, this is where the first really interesting quirk happened
- with my sequence breaking. I didn't waste time battling trainers
- on the S.S. Anne since they don't stand a chance against me
- anyway, and I headed straight for the Captain's Cabin.
+ Now, this is where the first really interesting quirk happened
+ with my sequence breaking. I didn't waste time battling trainers
+ on the S.S. Anne since they don't stand a chance against me
+ anyway, and I headed straight for the Captain's Cabin.
- Ordinarily, your rival will challenge you to a battle right before
- the Captain's Cabin. But, Blue was absent! He didn't show up to
- challenge me. I wonder why? Is it because I have the Fuchsia City
- gym badge already?
+ Ordinarily, your rival will challenge you to a battle right before
+ the Captain's Cabin. But, Blue was absent! He didn't show up to
+ challenge me. I wonder why? Is it because I have the Fuchsia City
+ gym badge already?
-
-
- Where are you, Blue? Are you too embarrassed to battle me again?
+
+
+ Where are you, Blue? Are you too embarrassed to battle me again?
-
- I went ahead and got the Cut HM from the Captain.
-
+
+ I went ahead and got the Cut HM from the Captain.
+
- Now, with the Cut HM, I can challenge the Vermilion City gym leader.
+ Now, with the Cut HM, I can challenge the Vermilion City gym leader.
-
-
- Bye-bye, S.S. Anne!
+
+
+ Bye-bye, S.S. Anne!
-
- Time to take on the Vermilion City gym!
+
+ Time to take on the Vermilion City gym!
-
- The gym trainers stood no chance against me.
+
+ The gym trainers stood no chance against me.
-
- The gym leader also lost spectacularly to my overpowered Pokemon.
-
+
+ The gym leader also lost spectacularly to my overpowered Pokemon.
+
- Now with the Vermilion City gym out of the way, I went back to
- Celadon City to pwn my way through their Grass-type Pokemon
- with my Charmeleon.
+ Now with the Vermilion City gym out of the way, I went back to
+ Celadon City to pwn my way through their Grass-type Pokemon
+ with my Charmeleon.
-
-
-
+
+
+
- Now, when I defeated the Vermilion City gym, I'm able to use
- Fly now. I can get Fly in Celadon City, so, let's go get it.
- Also, I captured a random Pidgey I found in the grass so that
- I'd have a Pokemon to teach Fly to.
+ Now, when I defeated the Vermilion City gym, I'm able to use
+ Fly now. I can get Fly in Celadon City, so, let's go get it.
+ Also, I captured a random Pidgey I found in the grass so that
+ I'd have a Pokemon to teach Fly to.
-
-
- Received HM02 - Fly.
+
+
+ Received HM02 - Fly.
-
- My gym badges so far. I never got the 1st badge.
-
+
+ My gym badges so far. I never got the 1st badge.
+
> Continue to Part 4 - {{ pages["4"] }}
+ {% endif %}
{% endif %}
{% if page == "4" or page == "full" %}
-
Breaking Mt. Moon
+
Breaking Mt. Moon
-
-
- Where should I Fly to next?
-
+
+
+ Where should I Fly to next?
+
- As you can see, I've now been to every city except for Pewter
- City and Indigo Plateau (but the latter is normal, as that's
- the very last city you go to).
+ As you can see, I've now been to every city except for Pewter
+ City and Indigo Plateau (but the latter is normal, as that's
+ the very last city you go to).
- I'm gonna fly to Cerulean City because I have an idea on how
- I can further sequence-break this game. Since I can Surf, I can
- escape from Cerulean City going west and get to Mt. Moon, and
- enter Mt. Moon from the wrong side.
+ I'm gonna fly to Cerulean City because I have an idea on how
+ I can further sequence-break this game. Since I can Surf, I can
+ escape from Cerulean City going west and get to Mt. Moon, and
+ enter Mt. Moon from the wrong side.
- This will place me on the other side of the fossils,
- and let me choose my fossil without having to battle the Pokemon
- trainer who guards them!
+ This will place me on the other side of the fossils,
+ and let me choose my fossil without having to battle the Pokemon
+ trainer who guards them!
-
-
- Surfing here to get out of Cerulean City!
+
+
+ Surfing here to get out of Cerulean City!
-
- The Cerulean City cave.
-
+
+ The Cerulean City cave.
+
- This trainer is blocking the entrance to the Cerulean City Cave,
- where Mewtwo lives, because you can't get in there until you've
- beaten the entire game. But I'm not interested in that cave, I'm
- going to head west to Mt. Moon!
+ This trainer is blocking the entrance to the Cerulean City Cave,
+ where Mewtwo lives, because you can't get in there until you've
+ beaten the entire game. But I'm not interested in that cave, I'm
+ going to head west to Mt. Moon!
-
-
- Mt. Moon - The back entrance.
+
+
+ Mt. Moon - The back entrance.
-
- The fossils!
-
+
+ The fossils!
+
- And here we are. Ordinarily, I would be on the opposite side of
- the fossils, and I'd have to battle the trainer down there first.
- After winning, he'd let me choose a fossil, and he'd take the
- opposite one. But I'm standing right by the fossils right now!
+ And here we are. Ordinarily, I would be on the opposite side of
+ the fossils, and I'd have to battle the trainer down there first.
+ After winning, he'd let me choose a fossil, and he'd take the
+ opposite one. But I'm standing right by the fossils right now!
-
-
- I'll take the Kabuto fossil!
+
+
+ I'll take the Kabuto fossil!
-
- The trainer automatically goes and takes the other one.
-
+
+ The trainer automatically goes and takes the other one.
+
- As I expected, taking the fossil has triggered the trainer to
- take the other one. But, I've skipped the battle with him now!
- See, look!
+ As I expected, taking the fossil has triggered the trainer to
+ take the other one. But, I've skipped the battle with him now!
+ See, look!
-
-
- I know, I've been to Cinnabar Island!
+
+
+ I know, I've been to Cinnabar Island!
-
- Through Mt. Moon, onward to Pewter City!
+
+ Through Mt. Moon, onward to Pewter City!
-
- I'm positive that you are mistaken. I've never been to Viridian Forest!
+
+ I'm positive that you are mistaken. I've never been to Viridian Forest!
-
- All this excitement has caused my Charmeleon to evolve!
+
+ All this excitement has caused my Charmeleon to evolve!
-
- Oh. Thanks for the warm welcome to Pewter City.
-
+
+ Oh. Thanks for the warm welcome to Pewter City.
+
- I've encountered Pewter City's "invisible wall" from the wrong side. The
- invisible wall is this trainer who's supposed to stop you from leaving
- Pewter City until you've defeated the gym leader, Brock.
+ I've encountered Pewter City's "invisible wall" from the wrong side. The
+ invisible wall is this trainer who's supposed to stop you from leaving
+ Pewter City until you've defeated the gym leader, Brock.
-
-
- I'm sure I have the right stuff, buddy.
+
+
+ I'm sure I have the right stuff, buddy.
-
- Brock doesn't know what he's getting himself into...
+
+ Brock doesn't know what he's getting himself into...
-
- Brock's strongest Pokemon doesn't even stand a chance.
-
+
+ Brock's strongest Pokemon doesn't even stand a chance.
+
- With Brock defeated, I've now run out of ways to sequence-break this
- game. I have the first 5 badges and have unlocked the paths to every
- city in the game. This is the point at which the game played
- legitimately and my sequence-broken game converge.
+ With Brock defeated, I've now run out of ways to sequence-break this
+ game. I have the first 5 badges and have unlocked the paths to every
+ city in the game. This is the point at which the game played
+ legitimately and my sequence-broken game converge.
- I guess I can head south to Viridian City though...
+ I guess I can head south to Viridian City though...
-
-
- Dude, I was catching Pokemon since before you were programmed.
-
+
+
+ Dude, I was catching Pokemon since before you were programmed.
+
- This old man stopped me on my way in to town to teach me how to catch
- a Pokemon. Because I never talked to him before I left for Fuchsia
- City at the beginning of my quest.
+ This old man stopped me on my way in to town to teach me how to catch
+ a Pokemon. Because I never talked to him before I left for Fuchsia
+ City at the beginning of my quest.
- And at this point I'm out of ideas. I guess I could've held
- off on fighting Brock, and headed straight for the Pokemon League
- and had a little battle with my rival Blue and completely kicked his
- ass...
+ And at this point I'm out of ideas. I guess I could've held
+ off on fighting Brock, and headed straight for the Pokemon League
+ and had a little battle with my rival Blue and completely kicked his
+ ass...
- My last idea is to head back to the Fuchsia City Zoo, and see that
- extinct Pokemon one more time. Since I took the Kabuto fossil, I
- shouldn't expect to see a Kabuto at the zoo now...
+ My last idea is to head back to the Fuchsia City Zoo, and see that
+ extinct Pokemon one more time. Since I took the Kabuto fossil, I
+ shouldn't expect to see a Kabuto at the zoo now...
-
-
- It's an Omanyte! What happened to Kabuto?
-
+
+
+ It's an Omanyte! What happened to Kabuto?
+
- Apparently they didn't like their Kabuto anymore after they saw I
- took the Kabuto fossil, and they replaced him with Omanyte. :)
+ Apparently they didn't like their Kabuto anymore after they saw I
+ took the Kabuto fossil, and they replaced him with Omanyte. :)
-
-
- Here's my final party.
-
+
+
+ Here's my final party.
+
- At this point I'm done with my experiment. From this point in the
- game, the plot has caught up with me and I'm no longer sequence
- breaking anymore. I'm at a state in this game where I could've
- gotten to the same place through legitimate means.
+ At this point I'm done with my experiment. From this point in the
+ game, the plot has caught up with me and I'm no longer sequence
+ breaking anymore. I'm at a state in this game where I could've
+ gotten to the same place through legitimate means.
- So this is where my quest comes to an end. If anybody has any new
- ideas, feel free to leave me a comment about them. :)
+ So this is where my quest comes to an end. If anybody has any new
+ ideas, feel free to leave me a comment about them. :)
{% endif %}
{{ include_page("comment.partial_index",
- thread="article-firered",
- subject="Sequence Breaking FireRed Version",
+ thread="article-firered",
+ subject="Sequence Breaking FireRed Version",
) | safe }}
{% endblock %}
\ No newline at end of file
diff --git a/www/google-ads.inc.html b/www/google-ads.inc.html
index 594d7d9..73c7390 100644
--- a/www/google-ads.inc.html
+++ b/www/google-ads.inc.html
@@ -1,33 +1,33 @@
{# Google ads for Kirsle.net #}
{% macro nav_ads() %}
-
{{ include_page("comment.partial_index",
- thread="guestbook",
- subject="My Guestbook",
- header=False,
+ thread="guestbook",
+ subject="My Guestbook",
+ header=False,
) | safe }}
{% endblock %}
\ No newline at end of file
diff --git a/www/javascript.html b/www/javascript.html
index 18c9a9f..801d190 100644
--- a/www/javascript.html
+++ b/www/javascript.html
@@ -29,14 +29,14 @@ often in the JavaScript world, but a roleplaying game that requires a lot of
programming and attention to detail.
- {% with messages = get_flashed_messages() %}
- {% if messages %}
-
Notice!
+
+
+ {% with messages = get_flashed_messages() %}
+ {% if messages %}
+
Notice!
-
- {% for message in messages %}
-
{{ message }}
- {% endfor %}
-
- {% endif %}
- {% endwith %}
+
+ {% for message in messages %}
+
{{ message }}
+ {% endfor %}
+
+ {% endif %}
+ {% endwith %}
- {% block content %}{% endblock %}
+ {% block content %}{% endblock %}
- {% if uri not in ["/", "/blog/index"] and not "/blog/category" in uri %}
-
- {{ leaderboard() }}
- {% endif %}
+ {% if uri not in ["/", "/blog/index"] and not "/blog/category" in uri %}
+
@@ -55,9 +55,9 @@ with VirtualBox's emulated hardware. Drivers include:
For tips, tricks, or to leave comments, see the relevant blog post "MS-DOS and Windows 3.1". The comments on that blog post are shared to this page as well (so comments on either page show up in both places).
- Here's a brief list of some of PCCC's features:
+ Here's a brief list of some of PCCC's features:
-
-
Full support of Version 1 of the CyanChat protocol.
-
Save the conversation in XHTML format, keeping colors intact.
-
Configurable "default nickname", and the ability to automatically
- sign you into the chat when you connect.
-
Configurable CC host and port, automatically connect on startup,
- and reconnect when disconnected.
-
Configurable colors, both for the main window and for the chat
- message and nickname colors.
+
+
Full support of Version 1 of the CyanChat protocol.
+
Save the conversation in XHTML format, keeping colors intact.
+
Configurable "default nickname", and the ability to automatically
+ sign you into the chat when you connect.
+
Configurable CC host and port, automatically connect on startup,
+ and reconnect when disconnected.
+
Configurable colors, both for the main window and for the chat
+ message and nickname colors.
-
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.
-
Clickable hyperlinks when they appear in chat.
-
Support for IRC-style "/me" actions.
-
Messages in the format *...* can be displayed as "/me" actions
- automatically.
-
Sound effects!
+
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.
+
Clickable hyperlinks when they appear in chat.
+
Support for IRC-style "/me" actions.
+
Messages in the format *...* can be displayed as "/me" actions
+ automatically.
+
Sound effects!
-
Private message windows so you can chat privately in an
- Instant Messenger style.
-
Option to ignore private messages from ChatServer (useful when
- Cho goes down and you need to use the debug port)
-
Option to automatically ignore users who ignore you.
-
Option to notify you when users ignore you.
-
Option to send a "real" ignore command to the server when you
- ignore a user (as opposed to a local ignore).
-
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).
+
Private message windows so you can chat privately in an
+ Instant Messenger style.
+
Option to ignore private messages from ChatServer (useful when
+ Cho goes down and you need to use the debug port)
+
Option to automatically ignore users who ignore you.
+
Option to notify you when users ignore you.
+
Option to send a "real" ignore command to the server when you
+ ignore a user (as opposed to a local ignore).
+
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).
-
A full built-in documentation system.
-
Built-in packet viewer with the Debug Window / Console.
-
A dialog to send raw commands to the CC server.
-
+
A full built-in documentation system.
+
Built-in packet viewer with the Debug Window / Console.
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.
+ 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.
- The following are all the distributions available for this software,
- starting with the most recent. Source code is also available for all
- versions.
+ The following are all the distributions available for this software,
+ starting with the most recent. Source code is also available for all
+ versions.
Use vncserver to start a VNC server (defaults to display :1
- for the first server)
-
Use vncserver -kill :1 to kill a server.
+
Use vncpasswd to set a password.
+
Use vncserver to start a VNC server (defaults to display :1
+ for the first server)
+
Use vncserver -kill :1 to kill a server.
Pi User Groups
@@ -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...
-
adm
-
dialout
-
cdrom
-
sudo
-
audio
-
video
-
plugdev
-
games
-
users
-
netdev
-
input
+
adm
+
dialout
+
cdrom
+
sudo
+
audio
+
video
+
plugdev
+
games
+
users
+
netdev
+
input
$ sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input kirsle
@@ -79,8 +79,8 @@ You'll need to do this before 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 %}
\ No newline at end of file
diff --git a/www/rendering.html b/www/rendering.html
index 5175618..f7033f9 100644
--- a/www/rendering.html
+++ b/www/rendering.html
@@ -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.
- 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.
-
- 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.
-
- 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.
-
- 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 Code Lyoko style.
-
- During my first quarter of college, I had this really lame
- class called Problem Solving. 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.
-
- 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).
-
+ 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.
+
+ 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.
+
+ 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.
+
+ 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 Code Lyoko style.
+
+ During my first quarter of college, I had this really lame
+ class called Problem Solving. 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.
+
+ 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).
+
- RiveScript is a text-based scripting language for giving responses to chatterbots.
- The project was started in late 2004 and tentatively named AiChaos Alpha. It has a simple,
- easy to learn format and it could be argued that it's more powerful than AIML (Artificial Intelligence
- Markup Language).
+ RiveScript is a text-based scripting language for giving responses to chatterbots.
+ The project was started in late 2004 and tentatively named AiChaos Alpha. It has a simple,
+ easy to learn format and it could be argued that it's more powerful than AIML (Artificial Intelligence
+ Markup Language).
- In short, it's a scripting language used to match a response to a message provided by the human.
+ In short, it's a scripting language used to match a response to a message provided by the human.
- In its simplest form, RiveScript code might look like this:
+ In its simplest form, RiveScript code might look like this:
-
+ hello bot
+
+ hello bot
- Hello, human!
- And can get into some more complicated things like this:
+ And can get into some more complicated things like this:
-
+ my name is *
-* <get name> == undefined => <set name=<formal>>Nice to meet you, <get name>>!
+
+ my name is *
+* <get name> == undefined => <set name=<formal>>Nice to meet you, <get name>>!
* <get name> == <formal> => I know, you've told me your name before.
* <get name> == <bot name> => <set name=<formal>>Wow, we have the same name!
* <get name> != <formal> => <set name=<formal>>Did you get a name change?
-
-
Project Website
+
+
Project Website
- This project's official website is RiveScript.com.
- Go there to learn more, download bots and RiveScript interpreters, and join the forum.
+ This project's official website is RiveScript.com.
+ Go there to learn more, download bots and RiveScript interpreters, and join the forum.
- 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.
+ 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.
- 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 ALICE A.I.
- Foundation, 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 ALICE A.I.
+ Foundation, 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.
-
Programming My Own
+
Programming My Own
- 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.
+ 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.
- 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.
-
Alternatives to AIML
+
Alternatives to AIML
- 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.
+ 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.
- 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:
-
+ hello bot
+
+ hello bot
- Hello human!
- 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.
-
Chatbot::Alpha
+
Chatbot::Alpha
- The first incarnation of my chatterbot scripting language was called AiChaos Alpha,
- 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 CPAN, and because Chatbot::Eliza was looking pretty lonely there,
- being the only module under the Chatbot space.
+ The first incarnation of my chatterbot scripting language was called AiChaos Alpha,
+ 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 CPAN, and because Chatbot::Eliza was looking pretty lonely there,
+ being the only module under the Chatbot space.
- 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 <that> 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 <that> tag
+ from AIML.
-
<!-- This is an example of the <that> tag in AIML -->
+
<!-- This is an example of the <that> tag in AIML -->
<category>
<pattern>ASK ME A QUESTION</pattern>
@@ -133,48 +133,48 @@ What is its name?
</template>
</category>
-
Chatbot::RiveScript
+
Chatbot::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".
+ 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".
-
RiveScript 1.00
+
RiveScript 1.00
- 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 Bot-Depot
- 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.
+ 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 Bot-Depot
+ 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.
- 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.
+ 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.
-
RiveScript 2.00
+
RiveScript 2.00
- So, I registered the domain name RiveScript.com,
- 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.
+ So, I registered the domain name RiveScript.com,
+ 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.
- 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 %}
\ No newline at end of file
diff --git a/www/tkcalc.html b/www/tkcalc.html
index d1ae12e..4502f95 100644
--- a/www/tkcalc.html
+++ b/www/tkcalc.html
@@ -5,106 +5,106 @@
- The Perl/Tk Calculator 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.
+ The Perl/Tk Calculator 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.
- 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.
-
Features
+
Features
-
-
Performs math functions.
-
Unlike the Windows calculator, you can enter full equations
- in this and they're displayed on-screen at all times.
-
Buttons can be clicked to insert math operators, or you can
- type them yourself with the keyboard.
+
+
Performs math functions.
+
Unlike the Windows calculator, you can enter full equations
+ in this and they're displayed on-screen at all times.
+
Buttons can be clicked to insert math operators, or you can
+ type them yourself with the keyboard.
-
Generate graphs of functions and display it, and return all
- the points that it plotted on the graph.
-
+
Generate graphs of functions and display it, and return all
+ the points that it plotted on the graph.
+
-
-
Screenshots
+
+
Screenshots
-
-
-
+
+
+
-
- tkcalc in action, showing two of the program's tabs.
-
-
-
+
+ tkcalc in action, showing two of the program's tabs.
+
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.
+ 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.
-
-
Downloads
+
+
Downloads
- 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.
-
- The following are all the distributions available for this software,
- starting with the most recent. Source code is also available for all
- versions.
+ The following are all the distributions available for this software,
+ starting with the most recent. Source code is also available for all
+ versions.