Merge remote-tracking branch 'origin/master'
|
@ -24,3 +24,4 @@ BURD(sneakums.png, It looks kind and gentle but sneakums' bird would just as soo
|
||||||
BURD(rasher.png, HI GUYS HOW'S IT GOING DO YOU LIKE SEEDS by rasher)
|
BURD(rasher.png, HI GUYS HOW'S IT GOING DO YOU LIKE SEEDS by rasher)
|
||||||
BURD(teferi.jpg, Someone just told teferi's bird a really terrible joke.)
|
BURD(teferi.jpg, Someone just told teferi's bird a really terrible joke.)
|
||||||
BURD(bz2.jpg, I never thought I'd see a bird with a pompadour`,' but bz2 has made that happen.)
|
BURD(bz2.jpg, I never thought I'd see a bird with a pompadour`,' but bz2 has made that happen.)
|
||||||
|
BURD(pedro.jpg, Pedro has been watching too many Michael Bay movies.)
|
||||||
|
|
After Width: | Height: | Size: 77 KiB |
|
@ -0,0 +1,22 @@
|
||||||
|
Title: Roller Derby Stuff
|
||||||
|
|
||||||
|
We provide Roller Derby software and advice, aimed at small- to medium-sized
|
||||||
|
leagues. We strive to make our software:
|
||||||
|
|
||||||
|
* Free: no ads, no fees, forever
|
||||||
|
* Open: download and modify the provided source code
|
||||||
|
* Clean: fans and NSOs should focus on the game, not our software
|
||||||
|
* Easy: quickly-learned and intuitive interfaces
|
||||||
|
|
||||||
|
Software
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Scoreboard](http://woozle.org/scoreboard/), works in any web browser
|
||||||
|
* [Penalty Timer (Android)](https://play.google.com/store/apps/details?id=org.woozle.penaltytimer)
|
||||||
|
* [Track](http://woozle.org/track/) with movable players
|
||||||
|
* Penalty Timer (iPhone/iPad) *coming soon*
|
||||||
|
|
||||||
|
Articles
|
||||||
|
--------
|
||||||
|
|
||||||
|
* [Running A/V for a Bout](http://woozle.org/~neale/papers/derby-av.html)
|
|
@ -0,0 +1 @@
|
||||||
|
google-site-verification: google7f698b9893809122.html
|
30
index.mdwn
|
@ -1,18 +1,32 @@
|
||||||
Title: Home
|
Title: Home
|
||||||
|
|
||||||
<form class="login"
|
<form class="login"
|
||||||
action="https://woozle.org/mail/index.php"
|
action="https://woozle.org/mail.cgi/"
|
||||||
method="post">
|
method="post">
|
||||||
Username
|
Username
|
||||||
<input type="text" name="user" size="15" />
|
<input type="text" name="user" size="15">
|
||||||
Password
|
Password
|
||||||
<input type="password" name="password" size="15" />
|
<input type="password" name="password" size="15">
|
||||||
<input type="submit" value="Read Email" />
|
<input type="submit" value="Read Email">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
Nov 9: Web site changes
|
Woozle.org provides shells, email, and web hosting for no cost,
|
||||||
=======================
|
without advertisements, and with a focus on security. Accounts are
|
||||||
|
held by folks who know the right person to ask.
|
||||||
|
|
||||||
I'm twiddling with the web site. Webmail should be fine but other things may
|
<!--
|
||||||
be up and down throughout the day.
|
ssh fingerprint for woozle.org: 63:ac:b0:e9:ee:9f:a9:4f:55:0a:4a:42:5d:45:47:06
|
||||||
|
-->
|
||||||
|
|
||||||
|
8 Mar: More web server suckage
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
I'm trying to get woozle.org ready for IPv6, using the same software
|
||||||
|
we run in [Dirtbags CTF](http://dirtbags.net/ctf/). I *thought* I had
|
||||||
|
the web server up and working, but apparently I broke webmail logins.
|
||||||
|
|
||||||
|
Thanks to the vigilant woozle user who phoned me to let me know it was
|
||||||
|
busted.
|
||||||
|
|
||||||
|
Uptime for the web server is pretty horrible lately. My apologies.
|
||||||
|
|
10
lists.cgi
|
@ -23,7 +23,7 @@ def getdesc(d):
|
||||||
return '(none)'
|
return '(none)'
|
||||||
ret = desc_re.search(hdrs)
|
ret = desc_re.search(hdrs)
|
||||||
if ret:
|
if ret:
|
||||||
return ret.group(1)
|
return cgi.escape(ret.group(1)).replace('#', '')
|
||||||
else:
|
else:
|
||||||
return '(none)'
|
return '(none)'
|
||||||
|
|
||||||
|
@ -47,10 +47,8 @@ if l and os.path.isdir(os.path.join(listdir, 'control')):
|
||||||
content = "<p>Uh oh. That didn't work.</p>"
|
content = "<p>Uh oh. That didn't work.</p>"
|
||||||
content += "<pre>%s</pre>" % cgi.escape(str(err))
|
content += "<pre>%s</pre>" % cgi.escape(str(err))
|
||||||
else:
|
else:
|
||||||
desc = getdesc(listdir)
|
|
||||||
content = '<h2>%s@woozle.org' % l
|
content = '<h2>%s@woozle.org' % l
|
||||||
if desc:
|
content += ": %s" % getdesc(listdir)
|
||||||
content += ": %s" % cgi.escape(desc)
|
|
||||||
content += '</h2>'
|
content += '</h2>'
|
||||||
content += '<p>To subscribe to or unsubscribe from the %s list,' % l
|
content += '<p>To subscribe to or unsubscribe from the %s list,' % l
|
||||||
content += ' just enter your email address in this handy dandy form!</p>'
|
content += ' just enter your email address in this handy dandy form!</p>'
|
||||||
|
@ -83,9 +81,9 @@ else:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
l = os.path.basename(d)
|
l = os.path.basename(d)
|
||||||
content += '<tr><td><a href="/lists/%s">%s</a></td>' % (l, l)
|
content += '<tr><td><a href="/lists.cgi/%s">%s</a></td>' % (l, l)
|
||||||
content += '<td>%s</td>' % getdesc(d)
|
content += '<td>%s</td>' % getdesc(d)
|
||||||
content += '<td><form action="lists">'
|
content += '<td><form action="/lists.cgi">'
|
||||||
content += ' <input name="addr" />'
|
content += ' <input name="addr" />'
|
||||||
content += ' <input type="hidden" name="l" value="%s" /><br />' % l
|
content += ' <input type="hidden" name="l" value="%s" /><br />' % l
|
||||||
content += ' <input type="submit" name="a" value="subscribe" />'
|
content += ' <input type="submit" name="a" value="subscribe" />'
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
const char *basepath = "/usr/share/IlohaMail/source";
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
char *pathinfo = getenv("PATH_INFO");
|
||||||
|
char filename[512];
|
||||||
|
|
||||||
|
if ((! pathinfo) ||
|
||||||
|
(! strcmp(pathinfo, "/")) ||
|
||||||
|
(0 == strcmp(pathinfo, "/index.html"))) {
|
||||||
|
pathinfo = "/index.php";
|
||||||
|
}
|
||||||
|
snprintf(filename, sizeof filename, "%s%s", basepath, pathinfo);
|
||||||
|
setenv("SCRIPT_FILENAME", filename, 1);
|
||||||
|
execl("/usr/bin/php-cgi", filename, NULL);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -2,10 +2,14 @@
|
||||||
|
|
||||||
echo 'Title: People'
|
echo 'Title: People'
|
||||||
echo
|
echo
|
||||||
|
echo 'The following people have made public homepages:'
|
||||||
|
echo
|
||||||
|
|
||||||
ls /home/*/public_html/index.html | while read fn; do
|
ls /home/*/public_html/index.html | while read fn; do
|
||||||
a=${fn#/home/}
|
a=${fn#/home/}
|
||||||
u=${a%/public_html/index.html}
|
u=${a%/public_html/index.html}
|
||||||
|
l=/srv/www/woozle.org/~$u
|
||||||
|
|
||||||
echo "* [$u](/~$u)"
|
echo "* [$u](/~$u/)"
|
||||||
|
[ -h $l ] || ln -s /home/$u/public_html $l
|
||||||
done
|
done
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
TARGETS += $(DESTDIR)/scoreboard/index.html
|
||||||
|
|
||||||
|
$(DESTDIR)/scoreboard/.git:
|
||||||
|
cd $(DESTDIR); git clone /home/neale/projects/scoreboard
|
||||||
|
|
||||||
|
$(DESTDIR)/scoreboard/index.html: $(DESTDIR)/scoreboard/.git
|
||||||
|
$(DESTDIR)/scoreboard/index.html: /home/neale/projects/scoreboard
|
||||||
|
cd $(DESTDIR)/scoreboard; git pull
|
|
@ -0,0 +1,82 @@
|
||||||
|
html {
|
||||||
|
font-family: sans-serif;
|
||||||
|
background: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: auto;
|
||||||
|
color: #636;
|
||||||
|
background: black;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
body h1:first-child {
|
||||||
|
font-size: 1.5em;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ccc;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
body h1:first-child:before {
|
||||||
|
font-size: 300%;
|
||||||
|
font-weight: normal;
|
||||||
|
content: "Woozle";
|
||||||
|
padding-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
font-size: 80%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
nav ul {
|
||||||
|
background-color: #222;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
nav li {
|
||||||
|
font-weight: bold;
|
||||||
|
display: inline;
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #e8b;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 150%;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.login {
|
||||||
|
margin: 0 1em;
|
||||||
|
color: #e8b;
|
||||||
|
background: #333;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login input {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
color: #bbb;
|
||||||
|
background: #111;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
a img
|
||||||
|
{
|
||||||
|
border: 1px #e8b solid;
|
||||||
|
}
|
||||||
|
img.left {
|
||||||
|
float: left;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background-color: #444;
|
||||||
|
}
|
|
@ -11,13 +11,13 @@ body {
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
body h1:first-child {
|
h1#title {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
body h1:first-child:before {
|
h1#title:before {
|
||||||
font-size: 300%;
|
font-size: 300%;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
content: "Woozle";
|
content: "Woozle";
|
||||||
|
@ -53,6 +53,10 @@ h1 {
|
||||||
border-bottom: 1px solid #ddd;
|
border-bottom: 1px solid #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 115%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.login {
|
.login {
|
||||||
margin: 0 1em;
|
margin: 0 1em;
|
||||||
|
|
|
@ -2,18 +2,19 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>TITLE</title>
|
<title>TITLE</title>
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width">
|
||||||
<link rel="stylesheet" href="/style.css" type="text/css" />
|
<link rel="stylesheet" href="/style.css" type="text/css">
|
||||||
<link rel="icon" type="image/png" href="/icon.png" />
|
<link rel="icon" type="image/png" href="/icon.png">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>TITLE</h1>
|
<h1 id="title">TITLE</h1>
|
||||||
<nav>
|
<nav>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/">Home</a></li>
|
<li><a href="/">Home</a></li>
|
||||||
<li><a href="/lists">Email lists</a></li>
|
<li><a href="/derby.html">Derby Stuff</a></li>
|
||||||
<li><a href="/wishlists">Wish lists</a></li>
|
<li><a href="/lists.cgi">Email lists</a></li>
|
||||||
<li><a href="/people">People</a><li>
|
<li><a href="/wishlist.cgi">Wish lists</a></li>
|
||||||
|
<li><a href="/people.html">People</a><li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
divert(1)
|
divert(1)
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
TARGETS += $(DESTDIR)/track/index.html
|
||||||
|
|
||||||
|
$(DESTDIR)/track/.git:
|
||||||
|
cd $(DESTDIR); git clone /home/neale/projects/track
|
||||||
|
|
||||||
|
$(DESTDIR)/track/index.html: $(DESTDIR)/track/.git
|
||||||
|
cd $(DESTDIR)/track; git pull
|
|
@ -1,6 +1,11 @@
|
||||||
PLAIN += .
|
PLAIN += .
|
||||||
COPY += icon.png style.css lists.cgi wishlist.cgi set.cgi $(TEMPLATE)
|
COPY += icon.png style.css style-black.css lists.cgi wishlist.cgi set.cgi $(TEMPLATE)
|
||||||
|
COPY += mail.cgi
|
||||||
|
COPY += google7f698b9893809122.html
|
||||||
HTML += people.html
|
HTML += people.html
|
||||||
|
|
||||||
$(DESTDIR)/people.html: people.sh
|
$(DESTDIR)/people.html: people.sh template.html.m4
|
||||||
sh $< | $(MDWNTOHTML) > $@
|
sh $< | $(MDWNTOHTML) > $@
|
||||||
|
|
||||||
|
$(DESTDIR)/mail.cgi: mail.cgi.c
|
||||||
|
$(CC) -Wall -Werror -o $@ $<
|
||||||
|
|
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 2.3 MiB |
After Width: | Height: | Size: 2.8 MiB |
After Width: | Height: | Size: 2.0 MiB |
After Width: | Height: | Size: 2.5 MiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 759 KiB |
After Width: | Height: | Size: 708 KiB |
After Width: | Height: | Size: 792 KiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 64 KiB |
|
@ -0,0 +1,70 @@
|
||||||
|
Title: 2011 Christmas Letter
|
||||||
|
|
||||||
|
This was a year of firsts. Ginnie had her first sleep-over, performed at her first Irish dance recital,
|
||||||
|
|
||||||
|
IMAGE(IMG_1329)
|
||||||
|
IMAGE(IMG_4888)
|
||||||
|
|
||||||
|
|
||||||
|
She got her first Ghillies,
|
||||||
|
|
||||||
|
IMAGE(IMG_1493)
|
||||||
|
|
||||||
|
competed in her first Irish Dance Competition,
|
||||||
|
|
||||||
|
IMAGE(DSC03851)
|
||||||
|
|
||||||
|
did her first ballet recital without an older girl leading,
|
||||||
|
|
||||||
|
IMAGE(IMG_1368)
|
||||||
|
|
||||||
|
and went on her first self-supported hike.
|
||||||
|
|
||||||
|
IMAGE(IMG_20110328_110408)
|
||||||
|
|
||||||
|
She sold her first (and last) Girl Scout Cookies: the top seller for her troupe!
|
||||||
|
|
||||||
|
IMAGE(IMG_20110312_095807)
|
||||||
|
|
||||||
|
She went to Disneyland for the first time
|
||||||
|
|
||||||
|
IMAGE(arrr)
|
||||||
|
IMAGE(tamarrr)
|
||||||
|
|
||||||
|
She went to her first Roller Derby bout
|
||||||
|
|
||||||
|
IMAGE(IMG_20110717_122045)
|
||||||
|
|
||||||
|
Evacuated town for the first time
|
||||||
|
|
||||||
|
IMAGE(IMG_20110626_201950)
|
||||||
|
|
||||||
|
Rode her bike by herself for the first time
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Read her first book by herself
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Had her first motorcycle ride
|
||||||
|
|
||||||
|
IMAGE(IMG_1469)
|
||||||
|
|
||||||
|
|
||||||
|
And ate her first Tofurky (she liked it!)
|
||||||
|
|
||||||
|
IMAGE(IMG_4958)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Amy and Neale had a lot of fun coffee dates this year
|
||||||
|
|
||||||
|
IMAGE(IMG_20110425_124754)
|
||||||
|
|
||||||
|
Love,
|
||||||
|
|
||||||
|
|
||||||
|
The Picketts (Neale, Amy, Ginnie, and the dogs, Dingo & Jada)
|
After Width: | Height: | Size: 48 KiB |