Unsorted Ideas
This is a dump for miscellaneous ideas. Please contact me if you are interested in the current status of these ideas.
Nice UI ideas
Some small ideas in user interfaces that I find nice:
- Insert a date or timestamp in text fields by typing „<D>“ or „<T>“ (these get autoreplaced). Found in Orage (calendar software) (and others)
- Insert a person's age (in years) in a recurring calendar entry by inserting their birth year: „<&Y1973>“. This gets automatically replaced with the value „current year of the calendar entry minus birth year“ on display (not on the fly). Found in Orage (calendar software).
- Assign a shortcut to an entry in a menu by hovering over it with the mouse and pressing the shortcut. Found in Claws Mail (but should be extended with a confirmation dialogue).
Carta Campus Ratisbonensis
Eine interaktive Echtzeit-Karte für den Campus der Universität Regensburg. Basiert auf offenen Standards: SVG, microformats, RSS, etc. Integration mit OpenStreetMap (?) Verschiedene Overlays, die miteinander kombiniert werden können:
- Hörsaal-Finder
- Störungsmeldungen
- Aktuelle (Lehr-)Veranstaltungen
- Aktuellen Aufenthaltsort von Personen finden (u.a. auf Basis von VL-Verz., aber auch indem man selbst sich auf der Karte sichtbar macht für einzelne (NDS-Accounts) oder die Allgemeinheit)
- Nachrichten/Infos, die an bestimmte Orte getaggt wurden/werden
- Luftqualität/Temparatur
- Warteschlangenlänge und Speisekarte in der Mensa
- Bus-Abfahrtszeiten und -Positionen
Informationen nicht nur auf Karte sondern auch als Text, RSS, GPS-Waypoints, etc. History wird gespeichert, kann durchgescrollt werden.
Evtl. als mehrere Master-Projekte.
Ressourcen
- [http://wiki.openstreetmap.org/wiki/Indoor_Mapping|Indoor-Mapping im OSM-Wiki]
Xattr-Tags for managing research projects, blogs, etc.
I want to have a directory for each research project,
CFS for GTD
Managing my own tasks is hard, especially as I have several roles (researcher, teacher, sysadmin, parent). While productivity methods like GTD are certainly helpful, I find it very difficult to determine whether I should prioritize grading overdue theses over fixing a broken RAID in a server, or prioritize work on a research paper over taking some time for playing with my children. Within one role, it is relatively easy to prioritize tasks. However, when one has to fulfill several roles, it is sometimes hard to decide, which role is more important at the moment. Additionally, there is always more work to be done than what is possible within a given timeframe. There will always be tasks that I won't be able to tackle.
There are several obvious approaches to this problem (I have not researched related work so far):
Fixed time slots - I could dedicate Mondays to research, Tuesdays to teaching, etc. There are two major problems with this approach. First, it does not work for urgent, unplanned tasks. When a student sends me an e-mail on Wednesday, asking a question about the current work sheet, it would not be nice to tell them that they need to wait for a reply until next Tuesday. Sometimes, a dedicated day has to be used for other tasks, e.g. for travelling. The second problem is that most roles do not have constant time requirements. There is little teaching to be done during holidays. A lot of research and writing happens right before a conference deadline - and little directly after the deadline. Therefore, a fixed schedule is not practical.
Fixed time amounts - …
Highest Priority Only -
The problem of scheduling tasks with different priorities - and taking care that even less important tasks do not get neglected - is not unique to humans. Operating systems need to do the same. Therefore, a lot of research has gone into kernel schedulers. The Completely Fair Scheduler (CFS) in Linux delegates different tasks to CPUs and makes sure that no task starves while prioritizing tasks with a higher nice level. (taking into account CPU affinity and reducing context switches?).
Maybe the alogrithm can be adapted for a personal task manager?
Unix meets HTML
- HTML/SVG/.. as exchange format
- document-centric editing: you select a portion of the document and call the tool - which gets the HTML fragment, pipes it through a filter, and outputs the modified version. Tools can also create new HTML elements (e.g. an image) or do something else with them.
- all filters can also be used on the command-line, allowing to pipe together a complex pipeline. Certainly needed: a filter that extracts certain elements (e.g. all <div class=„placeholder“
> elements) and a way to put modified elements back into the slot they were originally in.
- side-note: maybe add stdout1…n pipes. A document could be split into elements-to-be-modified (output to stdout1) and the original document with placeholders where the elements were taken from (output to stdout2). Then a special filter could combine both streams again, later.
- maybe use (also) a filesystem that gives access to the DOM
- when selecting a piece of text (or another element), all enclosing tags must be selected, too. That is, if I select a single word from a sentence formatted as bold, this single word needs to get bold tags, too.
=
Example: Word processing
References
HTML for Conference Papers
(todo)
6 Degrees of Separation for Wikipedia Edits
Analyze Wikipedia edits and create edges between all users who have edited the same Wikipedia article. Then find out who is within X hops from a certain user, and what the distance between two users is.
Subfile Filesystem (sffs)
Status: rough idea.
Problem: Many UNIX tools work on whole files. SFFS would allow accessing only parts of a file using a directory syntax, i.e. every file can also be a directory Note: Linux does not allow a file to be both a regular file and a directory at the same time. According to include/linux/stat.h, the st_mode flags are mutually exclusive. Maybe solve this on the filesystem path resolution level, i.e. 'file.html' will appear as a file, 'file.html/' will appear as a directory.
Example:
> cat test.ini [Section 1] val=123 [Section 2] val=333 val2="tree" > ls test.ini/ Section 1 Section 2 > cat test.ini/Section\ 1 val=123 > ls test.ini/Section# 1/ val > cat test.ini/Section\ 1/val 123 > cat test.ini/Section\ 5 cat: test.ini/Section\ 5: No such file or directory
See also: http://sysadvent.blogspot.de/2010/12/day-15-down-ls-rabbit-hole.html
For each file type a specialized filter would be needed.
- PDF → pages → text
- XML → child tags → child tags → …
- iCal Calendar → „/entries“ → entry → attributes (additionally „/date/2012/11/22/14/00/meetingwithmax“ syntax)
- sqlite file → databases → rows → fields
HTTP Filesystem(httpfs)
based on SFFS concept
Example:
> mount http://raphael.cc /mnt/raphael.cc # establish long-lasting http connection > cd /mnt/raphael.cc > ls ./ # get all links on the page (URL or title of link? title as symlink to URL?) blog/ dates.xhtml http://heise.de/ > cat . # act as a file - provide access to raw html (and maybe xml tree as in sffs, see above) <html> <body> <a href="blog/">Blog</a> <a href="dates.xhtml>test</a> <a href="http://heise.de/">Heise</a> </body> </html> > cd http://heise.de/ # auto-mount heise.de > pwd /mnt/heise.de/ [...]
(obviously, caching would be great)
Use also as basis for e.g. wikifs, facebookfs, etc.?
Interaktive EIMI
Simplen Computer mit Studenten bauen
- Jede Sitzreihe im Hörsaal ein Bearbeitungsschritt
- Jeder Student sieht nur seine drei Vordermänner und hebt die Hand, wenn eine bestimmte Bedingung bei den Vordermännern erfüllt ist
- 2-Bit-Addierer o.ä. machen
PC live zusammenbauen bzw. auseinandernehmen
- Netzteil, Mainboard, Prozessor, RAM, Karten, Festplatten, Monitor, Tastatur, Maus, etc.
- Schauen/demonstrieren, was man hotpluggen kann, und was nicht
- Prozessor überhitzen lassen
- usw.
Schatzsuche am Ende des Semesters
- Rätsel, geheime Nachrichten, Aufgaben, die man nur mit dem Wissen aus der Vorlesung lösen kann.