#+title: Projects #&summary Where all the prominent projects are listed. #& #+license: cc0 #&fullpage #&toc * Projects These are my projects, new and old. #++exec #+BEGIN_SRC python3 top_projs = ( 'mege', 'desurveil', 'aeltei', ('roptoligs', 'roptoligs', 'RPG project with planned modules and games', 'http://roptoligs.metanohi.name/'), 'sadbipws', ('suum', 'SUUM', 'Webcomic drawn in the art style of banal naivism', 'http://suum.metanohi.name/'), 'alart', 'forbi', 'shadowloss', 'alp', 'electruth', 'kvigall', 'naghni', 'forestquest', 'dililatum', 'noncrawl', 'enigma', 'wordwork', 'simplechat', ('nohix', 'nohiX', 'Small web experiments, some of them useful', 'http://nohix.metanohi.name/'), 'movact', 'wontofor', 'totxt', ('natur', "Niels' Nature", 'Watch Niels as he spouts nonsense about nature', 'http://nature.metanohi.name/'), ('films', 'nohifilms', "Niels' films", 'http://films.metanohi.name/'), ) other_projs = ( 'kando', 'nanonote', ('pdfsplit', 'A small Python script to split PDF files on a page-basis', 'http://projects.metanohi.name/misc/pdfsplit.tar.gz'), ('poemgen', 'A poem generator using Identi.ca blog posts as its source', 'http://projects.metanohi.name/poemgen/'), 'dotbox', 'vit', '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'), ('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: \ BiBBoB 0.1)", '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'), ('Japanese web apps', 'Javascript/CSS experiments with a theme', 'http://projects.metanohi.name/jap/'), ('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 = ( ('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/'), ) other_old_projs = ( '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/'), ('lapyrint', 'A stupid maze solver. Includes example labyrinths.', 'http://projects.metanohi.name/misc/lapyrint.tar.gz'), ('problist', "Probalistic list generator (isn't as intelligent as it sounds).", '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/'), ) ################################# boxtemplate = '''\
  • {title} {description}
  • ''' listtemplate = '''\
    {title}
    {description}
    ''' 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("') def listprojs(projs): print("
    ") for name in projs: title, desc, url = getparts(name, True) print(listtemplate.format(url=url, title=title, description=desc)) print('
    ') #+END_SRC ** Relatively new <@exec boxprojs(top_projs) @> *** Others <@exec listprojs(other_projs) @> #+mark: old ** Old <@exec boxprojs(old_top_projs) @> *** Others <@exec listprojs(other_old_projs) @>