Daniel Neuhäuser

E-Mail

<dasdasich@gmail.com>

IRC

DasIch in freenode

Twitter

@DasIch

Skype
danielneuhaeuser
GitHub

https://github.com/DasIch

Bitbucket

https://bitbucket.org/DasIch

Blog

http://dasdasich.blogspot.com/

Country (born / living in)
Germany
Current occupation

12th grade student at the Bergstadt Gymnasium Lüdenscheid

Software projects you have already participated in
* Sphinx

Port to Python 3.x and versioning system for internationalization and comments as part of GSoC and a JavaScript Domain.

* Logbook
Handlers and 2.4 Support.
* Brownie
Author
Other

Experience Level

I have participated twice in the Google Summer of Code. In 2010 I've ported Sphinx to Python 3.x and worked on a versioning system that is used by sphinx.websupport and the internationalization system and in 2011 I've worked on a unified benchmark suite for Python implementations. Unfortunately the latter project was unsuccessful in that the result remains unused.

Experience in coding in general
2008
Experience in Python coding

Started 2008, 2000h of experience 1

Experience in HTML

2006, 500h of experience 1

Experience in CSS

2006, 300h of experience 1

Experience in Javascript

2009, 100h of experience 1

Your favourite programmings language
I prefer Python for it's simplicity which allows me to get things done easily and fast however I'm very interested in funtional programming languages, specifically Haskell.
Tools you use for development
  • (Mac)Vim
  • zsh
  • virtualenv & virtualenvwrapper

  • pyflakes
  • tox

Project: Universal Pastebin

Abstract

While working on a Wiki a team of writer will often communicate via various technologies and not all of them allow (convenient) sharing of information such as texts or images, especially not in a persistent manner.

I would like to solve this problem by adding a universal pastebin to MoinMoin2, as suggested as an initial project idea.

Features

As part of the project I would like to implement the pastebin with the following features:

Text highlighting
Multiple file type support
Revisions
In a review process it is often helpful to work iteratively, meaning you make a paste, someone reviews it you make a couple of corrections and someone reviews it again etc. It would be helpful if a paste could be changed (while keeping) revisions, this allows going a step back in the process and offers a history that others can follow up on later.
Diffs

If we allow revisions we need diffs to make changes easier to identify. If we allow different file types we also need different kinds of diffs e.g. a side-by-side comparison for images. Especially for images it might be interesting to implement something similar to Github's image view modes.

Multi-File support

Sometimes it is helpful to paste multiple files, in this case it would be helpful to be able to group multiple files in a single paste. Lodgeit allows this by offering a special syntax (Multi-File Syntax), which causes it to be rarely used which is why I think this should be handled by the UI, which is also necessary if multiple files with different file types shall be allowed.

Replies
As an alternative to the paster changing his own pastes it might also be useful if others could reply to a paste. This feature would also include diffs between the reply and the paste that has been replied to.
API
It would be nice to have an API that allows posting pastes for usage by text editors or shells such as (b|i)python.
Comments
Being able to comment on pastes and specifically on individual lines would make the pastebin a very helpful tool for reviews. This could be taken even further by realtime notifications.

Timeline

First week
Basic implementation and design that allows pasting of single files containing arbitrary content.
Second week
Add revisions and diff functionality, the latter will also be used by replies later.
Third week
Add support for multiple files.
Fourth week
Add support for replies and diffs between replies and the replied-to pastes.
Fifth week
Implement a server-side API and possibly a Python library that can be used by clients.
Sixth-seventh week
Implement comments server-side and the necessary client side UI.
Eighth week
Implement realtime notifications on the server and client.

The remaining time will act as a buffer in case I will need more time than expected, which in my experience is an unfortunate but likely occurrence with software projects.

Other obligations

Discussion

Some of the results have to be used in the moin base code. Some new code makes only sense for the pastebin application. Can you give an idea which needs adaption. -- ReimarBauer 2012-04-03 22:32:05

  1. "rough estimate" (1 2 3 4)

MoinMoin: DanielNeuhäuser/GSoC 2012 Application (last edited 2012-04-24 13:28:03 by ThomasWaldmann)