2011-07-26 03:04:17 +02:00
|
|
|
#+title: Projects
|
|
|
|
#&summary
|
2014-01-05 21:24:35 +01:00
|
|
|
Where all my projects are listed.
|
2011-07-26 03:04:17 +02:00
|
|
|
#&
|
2013-08-28 21:01:15 +02:00
|
|
|
#+license: wtfpl
|
2012-06-30 02:08:49 +02:00
|
|
|
#+startup: showall
|
2011-07-26 03:04:17 +02:00
|
|
|
#&fullpage
|
2011-08-05 00:50:04 +02:00
|
|
|
#&toc
|
2011-07-26 03:04:17 +02:00
|
|
|
|
|
|
|
* Projects
|
|
|
|
|
2014-01-05 21:24:35 +01:00
|
|
|
** Pretty current
|
|
|
|
|
2014-01-05 21:58:19 +01:00
|
|
|
See [[http://git.metanohi.name/]] for a list of (mostly) current projects.
|
2014-01-05 21:24:35 +01:00
|
|
|
|
2011-08-05 00:50:04 +02:00
|
|
|
|
|
|
|
#++exec
|
|
|
|
#+BEGIN_SRC python3
|
|
|
|
top_projs = (
|
2014-01-05 21:58:19 +01:00
|
|
|
('aug', 'AUG', "Applicative Universal Grammar", 'http://git.metanohi.name/?p=aug.git'),
|
2014-01-05 21:44:15 +01:00
|
|
|
('badracing', 'Bad Racing', "Extremely poor racing game", 'http://git.metanohi.name/?p=badracing.git'),
|
2012-07-31 23:43:07 +02:00
|
|
|
'indirectassassin',
|
2012-02-21 22:55:12 +01:00
|
|
|
'magicng',
|
2012-06-27 19:46:13 +02:00
|
|
|
('suum', 'SUUM', 'Webcomic drawn in the art style of <em>banal naivism</em>',
|
|
|
|
'http://suum.metanohi.name/'),
|
2012-02-02 22:31:20 +01:00
|
|
|
'gravnoise',
|
2011-08-25 01:12:00 +02:00
|
|
|
'hbcht',
|
2011-08-10 23:35:57 +02:00
|
|
|
'mege',
|
2011-08-05 00:50:04 +02:00
|
|
|
'aeltei',
|
|
|
|
'alart',
|
|
|
|
'shadowloss',
|
|
|
|
'alp',
|
|
|
|
'electruth',
|
2012-06-27 19:46:13 +02:00
|
|
|
('films', 'nohifilms', "Niels' films", 'http://films.metanohi.name/'),
|
2011-08-05 00:50:04 +02:00
|
|
|
('nohix', 'nohiX', 'Small web experiments, some of them useful', 'http://nohix.metanohi.name/'),
|
|
|
|
('natur', "Niels' Nature", 'Watch Niels as he spouts nonsense about nature', 'http://nature.metanohi.name/'),
|
|
|
|
)
|
|
|
|
|
|
|
|
other_projs = (
|
2012-04-20 19:17:04 +02:00
|
|
|
'luncheon',
|
2012-06-30 02:08:49 +02:00
|
|
|
'textmation',
|
2012-07-05 15:14:13 +02:00
|
|
|
'beepfun',
|
2011-12-22 14:55:38 +01:00
|
|
|
('ticso', 'Create dynamic functions in C uglily', 'https://gitorious.org/ticso'),
|
2012-07-07 22:46:56 +02:00
|
|
|
'zebralligator',
|
2011-08-10 23:35:57 +02:00
|
|
|
'kando',
|
2012-06-27 19:46:13 +02:00
|
|
|
'bolg',
|
2012-06-30 02:08:49 +02:00
|
|
|
'pebsaq',
|
2012-07-14 03:27:26 +02:00
|
|
|
'minmailist',
|
2011-12-11 02:31:14 +01:00
|
|
|
('drget', 'Get media from Danmarks Radio', 'https://gitorious.org/drget'),
|
2011-09-17 22:03:59 +02:00
|
|
|
('folketingetmeninger',
|
2011-09-17 22:09:55 +02:00
|
|
|
'A small Python script to download and show the opinions of the Danish parties',
|
|
|
|
'http://projects.metanohi.name/misc/folketingetmeninger.py.gz'),
|
2011-08-05 00:50:04 +02:00
|
|
|
'nanonote',
|
2012-06-27 19:46:13 +02:00
|
|
|
'totxt',
|
2011-08-05 00:50:04 +02:00
|
|
|
('pdfsplit', 'A small Python script to split PDF files on a page-basis',
|
|
|
|
'http://projects.metanohi.name/misc/pdfsplit.tar.gz'),
|
|
|
|
'dotbox',
|
|
|
|
'vit',
|
2012-06-30 02:08:49 +02:00
|
|
|
('raipaw', 'A pseudo-random IPA word generator.',
|
|
|
|
'http://projects.metanohi.name/misc/raipaw.py.gz'),
|
2011-08-12 16:28:52 +02:00
|
|
|
('woiwo', 'Find words in words',
|
|
|
|
'http://projects.metanohi.name/misc/woiwo.py.gz'),
|
|
|
|
('resistorpair', 'Calculate which standard resistors to use for a specific resistance',
|
|
|
|
'http://projects.metanohi.name/misc/resistorpair.py.gz'),
|
2011-08-05 00:50:04 +02:00
|
|
|
'qvikconfig',
|
|
|
|
'htmlentitiesdecode',
|
|
|
|
('gadon', 'Creates scary cirle animations reminiscent of heartbeats',
|
|
|
|
'http://projects.metanohi.name/misc/gadon.tgz'),
|
|
|
|
('colchs', 'A simple GTK color chooser',
|
|
|
|
'http://projects.metanohi.name/misc/colchs.tgz'),
|
2012-06-27 19:46:13 +02:00
|
|
|
('Japanese web apps', 'Javascript/CSS experiments with a theme',
|
|
|
|
'http://projects.metanohi.name/jap/'),
|
2011-08-05 00:50:04 +02:00
|
|
|
('wikiaq', 'A quiz system using Wikipedia articles',
|
|
|
|
'http://projects.metanohi.name/misc/wikiaq-0.1.tar.gz'),
|
|
|
|
('BiBBoB 0.1.1', "A simple sound wave generator (older versions: \
|
|
|
|
<a href='http://projects.metanohi.name/misc/bibbob-0.1.tar.gz'>BiBBoB 0.1</a>)",
|
|
|
|
'http://projects.metanohi.name/misc/bibbob-0.1.1.tar.gz'),
|
|
|
|
('data2wav', 'Converts all data to sound (and back again)',
|
|
|
|
'http://projects.metanohi.name/misc/data2wav.tgz'),
|
|
|
|
('pitivi-smil', "A workaround to make PiTiVi XPTV files get rendered using \
|
|
|
|
Kino. No support for PiTiVi's more advanced features.",
|
|
|
|
'http://projects.metanohi.name/misc/pitivi-smil.tgz'),
|
|
|
|
('googolplex', 'A program that attempts to print one googolplex. \
|
|
|
|
If saved to a file, this requires 1 googol + 1 bytes.',
|
|
|
|
'http://projects.metanohi.name/misc/googolplex.c'),
|
|
|
|
('data2png', 'Save data as a png file, and restore the data from the png file.',
|
|
|
|
'http://projects.metanohi.name/misc/data2png.tar.gz'),
|
|
|
|
('stanimate', 'A bash script to aid in the creation of stop motion films.',
|
|
|
|
'http://projects.metanohi.name/misc/stanimate.gz'),
|
|
|
|
('mssrnm (mass rename)', 'A bash script to rename a bunch of files into files \
|
|
|
|
"001.jpg", "002.jpg", "003.jpg", etc.',
|
|
|
|
'http://projects.metanohi.name/misc/mmsrnm.gz'),
|
|
|
|
)
|
|
|
|
|
|
|
|
old_top_projs = (
|
2014-01-05 21:24:35 +01:00
|
|
|
'dungeoncrawl',
|
|
|
|
'pumila',
|
|
|
|
'yelljfish',
|
|
|
|
'exoskelegram',
|
|
|
|
'desurveil',
|
|
|
|
'kvigall',
|
|
|
|
'forestquest',
|
|
|
|
'dililatum',
|
|
|
|
'enigma',
|
2012-06-27 19:46:13 +02:00
|
|
|
'forbi',
|
|
|
|
'naghni',
|
|
|
|
'movact',
|
|
|
|
'noncrawl',
|
|
|
|
'wordwork',
|
|
|
|
'simplechat',
|
2011-08-05 00:50:04 +02:00
|
|
|
('words', 'words', 'Words and sentences. Not a blog.', 'http://words.metanohi.name/'),
|
|
|
|
('pictures', 'Pictures', 'Pictures uploaded by me', 'http://pictures.metanohi.name/'),
|
|
|
|
('eonaton', 'Eon Aton', 'An underdeveloped RPG-style JS system and a story', 'http://projects.metanohi.name/eonaton/'),
|
|
|
|
'zita',
|
|
|
|
'cln',
|
|
|
|
('algo', 'Algo', 'A JavaScript window manager', 'http://projects.metanohi.name/algo/'),
|
|
|
|
'an5w',
|
|
|
|
('canvas', 'Experimenting with canvas', 'Old HTML canvas element experiments', 'http://projects.metanohi.name/canvas/'),
|
|
|
|
('bsq', 'Brainy Stickman Quiz', 'Sidescroller/quiz based on the HTML canvas element', 'http://projects.metanohi.name/bsq/'),
|
|
|
|
('snake', 'JavaScript Snake', 'Arrow keys to move, PageUp and PageDown to adjust speed.', 'http://projects.metanohi.name/snake/'),
|
|
|
|
('gt3000', 'GT 3000', 'Retro JS mini racing game.', 'http://projects.metanohi.name/gt3000/'),
|
|
|
|
('sq', "Satan's Quest", 'Retro RPG-style JS minigame. You are Gabruel.', 'http://projects.metanohi.name/sq/'),
|
|
|
|
('evolution', 'Evolution', 'Notice the intelligence.', 'http://projects.metanohi.name/evolution/'),
|
2012-06-27 19:46:13 +02:00
|
|
|
('roptoligs', 'roptoligs', 'RPG project with planned modules and games',
|
|
|
|
'http://roptoligs.metanohi.name/'),
|
2011-08-05 00:50:04 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
other_old_projs = (
|
2012-06-27 19:46:13 +02:00
|
|
|
'sadbipws',
|
2011-08-05 00:50:04 +02:00
|
|
|
'bito',
|
|
|
|
'nalgh',
|
|
|
|
('Graphical web experiments',
|
|
|
|
"Some of them'll work, while some of them might crash your browser.",
|
|
|
|
'http://projects.metanohi.name/x/'),
|
|
|
|
('cheatbibtex', '''\
|
|
|
|
Provides an alternative way of dealing with BiBTeX bibliographies. Use BiBLaTeX
|
|
|
|
instead of cheatbibtex (cheatbibtex isn't that great, while BiBLaTeX is quite
|
|
|
|
the LaTeX package).''', 'http://projects.metanohi.name/misc/cheatbibtex-0.1.tar.gz'),
|
|
|
|
('dsktp', 'A JS wm like Algo',
|
|
|
|
'http://projects.metanohi.name/dsktp/'),
|
|
|
|
('webCLI', 'A CLI lookalike in JavaScript with XML',
|
|
|
|
'http://projects.metanohi.name/webcli/'),
|
2012-06-27 19:46:13 +02:00
|
|
|
'wontofor',
|
2011-08-05 00:50:04 +02:00
|
|
|
('lapyrint', 'A stupid maze solver. Includes example labyrinths.',
|
|
|
|
'http://projects.metanohi.name/misc/lapyrint.tar.gz'),
|
2012-06-27 19:46:13 +02:00
|
|
|
('poemgen', 'A poem generator using Identi.ca blog posts as its source',
|
|
|
|
'http://projects.metanohi.name/poemgen/'),
|
|
|
|
('problist', "A newbie's way of programming permutations in Python. Kept here for its funny code and misuse of terms",
|
2011-08-05 00:50:04 +02:00
|
|
|
'http://projects.metanohi.name/misc/problist.tar.gz'),
|
|
|
|
('The Life of a Snowman', "Life can be cruel towards snowmen. This is proof.",
|
|
|
|
'http://projects.metanohi.name/snowman/'),
|
|
|
|
('Katten Pedro (Pedro the Cat)', "A comic I drew during a vacation in Mallorca.",
|
|
|
|
'http://projects.metanohi.name/pedro/'),
|
|
|
|
('Misc.', 'Very old stuff.',
|
|
|
|
'http://projects.metanohi.name/misc/'),
|
|
|
|
)
|
|
|
|
|
|
|
|
#################################
|
2011-12-11 02:31:14 +01:00
|
|
|
|
2011-08-05 00:50:04 +02:00
|
|
|
boxtemplate = '''\
|
|
|
|
<li>
|
|
|
|
<a href='{url}' style='background-image: url(img/{name}.png);'>
|
|
|
|
{title}
|
|
|
|
</a>
|
|
|
|
<dfn>{description}</dfn>
|
|
|
|
</li>
|
|
|
|
'''
|
|
|
|
|
|
|
|
listtemplate = '''\
|
|
|
|
<dt><a href='{url}'>{title}</a></dt>
|
|
|
|
<dd>{description}</dd>
|
|
|
|
'''
|
|
|
|
|
|
|
|
def getparts(name, no_name=False):
|
|
|
|
if isinstance(name, tuple):
|
|
|
|
if no_name:
|
|
|
|
title, desc, url = name
|
|
|
|
else:
|
|
|
|
name, title, desc, url = name
|
|
|
|
else:
|
|
|
|
orgpath = misc.get_org_path(os.path.join(page.pathdir, name))
|
|
|
|
url = './{name}'.format(name=name)
|
|
|
|
if orgpath.endswith('index.org'):
|
|
|
|
url += '/'
|
|
|
|
a = htmlgen.org_to_abstract(orgpath, isfile=True, only_metadata=True)
|
|
|
|
title, desc = a.title, a.summary
|
|
|
|
if no_name:
|
|
|
|
return title, desc, url
|
|
|
|
else:
|
|
|
|
return name, title, desc, url
|
|
|
|
|
|
|
|
def boxprojs(projs):
|
|
|
|
print("<ul class='projectboxes'>")
|
|
|
|
for name in projs:
|
|
|
|
name, title, desc, url = getparts(name)
|
|
|
|
print(boxtemplate.format(name=name, url=url, title=title, description=desc))
|
|
|
|
print('</ul>')
|
|
|
|
|
|
|
|
def listprojs(projs):
|
|
|
|
print("<dl>")
|
|
|
|
for name in projs:
|
|
|
|
title, desc, url = getparts(name, True)
|
|
|
|
print(listtemplate.format(url=url, title=title, description=desc))
|
|
|
|
print('</dl>')
|
2011-12-11 02:31:14 +01:00
|
|
|
|
2011-08-05 00:50:04 +02:00
|
|
|
#+END_SRC
|
|
|
|
|
2014-01-05 21:24:35 +01:00
|
|
|
** Featured
|
2011-08-05 00:50:04 +02:00
|
|
|
|
2011-08-11 03:37:52 +02:00
|
|
|
#++exec
|
|
|
|
#+BEGIN_SRC python
|
|
|
|
boxprojs(top_projs)
|
|
|
|
#+END_SRC
|
2011-08-05 00:50:04 +02:00
|
|
|
|
2014-01-05 21:50:46 +01:00
|
|
|
#&clear
|
2014-01-05 21:50:11 +01:00
|
|
|
** Somewhat featured
|
2011-08-05 00:50:04 +02:00
|
|
|
|
2011-08-11 03:37:52 +02:00
|
|
|
#++exec
|
|
|
|
#+BEGIN_SRC python
|
2014-01-05 21:50:11 +01:00
|
|
|
boxprojs(old_top_projs)
|
2011-08-11 03:37:52 +02:00
|
|
|
#+END_SRC
|
2011-08-05 00:50:04 +02:00
|
|
|
|
2011-07-26 03:04:17 +02:00
|
|
|
|
2014-01-05 21:50:11 +01:00
|
|
|
#&clear
|
|
|
|
** Less prominent
|
2014-01-05 21:24:35 +01:00
|
|
|
|
2011-08-11 03:37:52 +02:00
|
|
|
#++exec
|
|
|
|
#+BEGIN_SRC python
|
2014-01-05 21:50:11 +01:00
|
|
|
listprojs(other_projs)
|
2011-08-11 03:37:52 +02:00
|
|
|
#+END_SRC
|
2011-08-05 00:50:04 +02:00
|
|
|
|
2014-01-05 21:50:11 +01:00
|
|
|
|
2012-04-19 23:09:00 +02:00
|
|
|
#&clear
|
2014-01-05 21:50:11 +01:00
|
|
|
** Even less prominent
|
2011-08-05 00:50:04 +02:00
|
|
|
|
2011-08-11 03:37:52 +02:00
|
|
|
#++exec
|
|
|
|
#+BEGIN_SRC python
|
|
|
|
listprojs(other_old_projs)
|
|
|
|
#+END_SRC
|