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(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(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
|
||||
|
||||
<form class="login"
|
||||
action="https://woozle.org/mail/index.php"
|
||||
action="https://woozle.org/mail.cgi/"
|
||||
method="post">
|
||||
Username
|
||||
<input type="text" name="user" size="15" />
|
||||
<input type="text" name="user" size="15">
|
||||
Password
|
||||
<input type="password" name="password" size="15" />
|
||||
<input type="submit" value="Read Email" />
|
||||
<input type="password" name="password" size="15">
|
||||
<input type="submit" value="Read Email">
|
||||
</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)'
|
||||
ret = desc_re.search(hdrs)
|
||||
if ret:
|
||||
return ret.group(1)
|
||||
return cgi.escape(ret.group(1)).replace('#', '')
|
||||
else:
|
||||
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 += "<pre>%s</pre>" % cgi.escape(str(err))
|
||||
else:
|
||||
desc = getdesc(listdir)
|
||||
content = '<h2>%s@woozle.org' % l
|
||||
if desc:
|
||||
content += ": %s" % cgi.escape(desc)
|
||||
content += ": %s" % getdesc(listdir)
|
||||
content += '</h2>'
|
||||
content += '<p>To subscribe to or unsubscribe from the %s list,' % l
|
||||
content += ' just enter your email address in this handy dandy form!</p>'
|
||||
|
@ -83,9 +81,9 @@ else:
|
|||
continue
|
||||
|
||||
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><form action="lists">'
|
||||
content += '<td><form action="/lists.cgi">'
|
||||
content += ' <input name="addr" />'
|
||||
content += ' <input type="hidden" name="l" value="%s" /><br />' % l
|
||||
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
|
||||
echo 'The following people have made public homepages:'
|
||||
echo
|
||||
|
||||
ls /home/*/public_html/index.html | while read fn; do
|
||||
a=${fn#/home/}
|
||||
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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
body h1:first-child {
|
||||
h1#title {
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
color: #ccc;
|
||||
margin: 0;
|
||||
}
|
||||
body h1:first-child:before {
|
||||
h1#title:before {
|
||||
font-size: 300%;
|
||||
font-weight: normal;
|
||||
content: "Woozle";
|
||||
|
@ -53,6 +53,10 @@ h1 {
|
|||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 115%;
|
||||
}
|
||||
|
||||
|
||||
.login {
|
||||
margin: 0 1em;
|
||||
|
|
|
@ -2,18 +2,19 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>TITLE</title>
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="stylesheet" href="/style.css" type="text/css" />
|
||||
<link rel="icon" type="image/png" href="/icon.png" />
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="stylesheet" href="/style.css" type="text/css">
|
||||
<link rel="icon" type="image/png" href="/icon.png">
|
||||
</head>
|
||||
<body>
|
||||
<h1>TITLE</h1>
|
||||
<h1 id="title">TITLE</h1>
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/lists">Email lists</a></li>
|
||||
<li><a href="/wishlists">Wish lists</a></li>
|
||||
<li><a href="/people">People</a><li>
|
||||
<li><a href="/derby.html">Derby Stuff</a></li>
|
||||
<li><a href="/lists.cgi">Email lists</a></li>
|
||||
<li><a href="/wishlist.cgi">Wish lists</a></li>
|
||||
<li><a href="/people.html">People</a><li>
|
||||
</ul>
|
||||
</nav>
|
||||
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 += .
|
||||
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
|
||||
|
||||
$(DESTDIR)/people.html: people.sh
|
||||
$(DESTDIR)/people.html: people.sh template.html.m4
|
||||
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 |