Ideas

Ʌ: Projects

Files and file-systems

UpEnd

Priority: A+
This is the project I’m currently trying to push forward the most.

Essential

  • alternative approach to filesystems
  • file storage as database; database as file storage
  • fs ⇋ db ⟹ allmighty library
  • ahierarchical // polyhierarcal approach…

Cut word lines Cut music lines Smash the control images Smash the control machine Burn the books Kill the priests Kill! Kill! Kill!

  • William S. Burroughs - The Soft Machine (1961)

Use-Cases

Miscellaneous

Life-cycle of files

  • A way to denote less or more accessed files?
    • MP3s not played in years, code read a long time ago…
  • Where did a file come from?
    • Both in a “Downlodaded from the internet”/”Created via Photoshop” meaning, as well as the “where was this file before I moved it here”?

(Hyper)media

Generic Out-of-Band Markup editor (/format?)

Priority: A
(opens the door to many other projects!)

Motivations:

If anyone wants to mark up a document it’s easy to just fire up any text editor. On the other hand, there’s no equivalent for out-of-band markup.

To be fair, there isn’t even any common format for OOB markup - maybe start there? How to simply represent text + attached information?

Overlaps with Multi-Annotator?

Video Navigator

Priority: B
(non-essential, but scratches an itch I have annoyingly often)

Concepts to utilize:

  • Pseudo-“movie barcode” (as on https://media.ccc.de 🌐)
  • Have two seek-bars - coarse, fine
    • above and below the video?
  • Markers based on scene detection (adjustable sensitivity)
  • (Automatic) bookmarks/meaningful history

Itch spotted elsewhere: https://twitter.com/rsnous/status/1357532520812748801?s=20 🌐

Various Experiments

Machinical a/v cut-ups // Decontextualizer

Priority: Solid B?

  1. Take a set of videos that are subtitled
  2. Sort subtitle segments by length (text, time)
  3. Filter or even modulate chosen segment length
  4. Randomly pick N segments
  5. Join them together along with their videos

There could be an intermediate format (i.e. step 4.5) - a text file that is then fed to a final video editor (ffmpeg script); and hence editable using standard tools (grep, vim, etc.).

Slide Capturer

Priority: B+
(The simplest version that’s already useful should not be too difficult to implement.)

A program that extracts slides as bitmaps based on image (dis)similarity when given a video of the lecture (and possibly coordinates where the slides are in the video?)

Additionally: Just output the timestamps of slide changes, e.g. for annotating an audio track so that each segment can afterwards be paired with the slide…

YouTube annotations

RIP, another Google-gutted feature with great potential. Let’s do better.

Web Annotations

Priority: C
(Stuff like popcorn.js 🌐 would have been sufficient, but died - for a reason? Additionally, a lot of the work there is in UX polish and doing Google’s work.)

Essentially comments with a time-stamp + spatial info (being able to annotate a certain area of the video).

  • Would the W3C Web Annotation data model suffice?
    • It would. Implementation details / integration payoff uncertain.

From existing comments

ALREADY DONE - https://github.com/ris58h/youtube-timestamps 🌐

Go through current page of comments, check for timestamps, insert them on the timeline - kind of like SoundCloud used to?

Multi-Annotator

Priority: C
(Big project, lots of essential complexity. Perhaps UpEnd will help this along?)

Like https://docdrop.org 🌐 except with native understanding of the formats

  • What’s the underlying structure of annotations?
    • check out w3c standards, hypothes.is…
  • target + body = annotation

Social Networks

Boards

Priority: B
(Too interesting not to attempt.)

A collaborative spatial canvas that you can place any sort of info in (files, images, links, text), but in which every participant has a tangible presence.

A real “gathering place” for projects, planning, etc.

There’s projects are trying to solve the awkwardness of video calls, but they approach the spatialization either in a completely abstract way (Wonder 🌐, or a bit too “skeuomorphic” for my tastes (Kumospace 🌐.

Why not join the natural metaphor of spatialized presence with an actual (hyper-)pinboard system - kind of like Muse 🌐 does?

You could, at the same time, build a 2D multimedia mind-map collage of whatever you’re talking about, while actually being casually “present” in that document.

Open-source Identity Toolkit

Priority: C
(There’s people who can do it much better and faster than I can.)

A ready-to-use software package that contains:

  • Webcam-controlled 3D face model that can be parametrized
    • A Virtual Webcam
  • A voice changer

(Think VRChat, but without the VR.)

Uses:

  • There’s a ton of legitimate reasons not to show one’s face/voice online (in fact, some would argue that internet best be used anonymously), but that means no facial expressions to communicate with.
  • Personal experiments with what kind of identities can one assume; identity “self-forming”.

Various Text-Messaging Experiments

Priority: C
(Not really all that important, but would be fun)

A chat where various rules can be imposed (including several rules at once), just to see what it does to communication:

Constrained chat

  • r9k 🌐 (i.e. forbid repetition)
  • “no e”, a.k.a. lipograms 🌐, or other forms of constrained writing
  • ALL UPPER CASE FOR ALL USERS / all lowercase for all users
  • Time-limit, character budget…
  • No nicknames
  • etc.

IRC thread detector

Usually, people in IRC reply back an forth to each other, with each message prefixed with the nick of the recipient. Would it be possible to automatically detect an on-going conversation and highlight/hide it, if one wants to (not) follow that one?

Modular Social Network / Discussion Board

Priority: Concept?

A modular “mix-and-match” system for building a social network.

The underlying structure of most (if not all?) discussion systems can be expressed using a differently shaped tree of messages.

  • Global linear list (IRC-like)
  • List of linear lists (4chan, phpBB-like, StackOverflow)
  • A selection from user-specific (semi-)linear lists (Twitter, Instagram, Facebook…)
  • List of trees (Reddit)

This is not some grand insight, but since the base is the same, the rest can be thought of as different “modifiers”. For example:

  • Anonymity:
    • Pseudonymous
    • Optional (4chan)
    • Forced
  • Media type:
    • Text
    • Images
    • Videos
  • Moderation:
    • None (4chan)
    • Voting scales
      • Single scale (Reddit)
      • Multiple scales (Slashdot, Facebook)
    • Voting options (only adding or also subtracting score?)
    • Voting consequence
    • Approval necessary? (Metafilter)
  • Expiration date of posts, r9k-like constraints…

Obviously, it’s a tough job to write software for just one type of a social network, let alone all of them. But for experiment’s sake, this doesn’t really need to scale to millions of users, and the UX doesn’t need to be perfect either.

It would be interesting enough just to try out what a Twitter with optional anonymity would look like, image-only Reddit, real-time phpBB bulletin board, time-limited IRC with voting and forced anonymity (etc.), and I don’t think it’s impossible to create a UI that is abstract/general enough to allow even for weird use cases like these.

Personal Information Management

Multi-Calendar // Timeline

Calendar part

  • Allow preliminary dates / times (see Uncertain Interfaces)
  • De-duplication of events
    • Be intelligent about multiple calendars having the same event (same time, fuzzy match titles) and merge them
  • Broad / long-term events, boundaries
    • No Earlier Than, etc.

Personal “everything log”

Quantified-Self Trackers

Mental fatigue tracking

Priority: Literally my bachelor thesis topic
The cursor entropy part, anyway; I’d like to experiment with the rest later.

1st phase: Just see if it works and corresponds to subjective ratings? 2nd phase: Adjust UIs, color temperature based on fatigue levels?

Sleep video movement tracker

Priority: C

Point a cheap IR camera at my bed, quantify pixel differences, see if it matches up with wristwatch sleep tracking?

(Cons: Might get really creepy, but worth trying!)

Raspberry Pi

mp4museum with a web interface

Priority: B

http://mp4museum.org 🌐

Perspective Transformator // Mapper

Priority: C+
Mostly a workflow-optimizer rather than a novel approach, but touches on interesting topics (i.e. real-time rendering on the raspi)

Universal video-mapping solution for galleries, etc.

Take HDMI in, transform according to the web interface, output over HDMI.

(Hardware for HDMI input: https://github.com/pikvm/pikvm 🌐)

UNIXy stuff

Better shell

🚧🚧🚧
https://explainshell.com/ 🌐 but in reverse?
🚧🚧🚧

Types

  • Rewrite what’s feasible (ls, cat…)
  • Models for parsing the output of known utilities?
    • Could also include typing of input - i.e. smart autocomplete based on what’s expected at any given position…
  • (What language to use?)

Existing

https://www.nushell.sh 🌐

Non-utilitarian

OVERSEER v2

Priority: B https://gitlab.com/tmladek/overseer 🌐 except better

  • Add quote sources
    • From twitter channels, etc.

Miscellaneous

VS Code Outliner Extension

Priority: Why me?
There’s currently no extension that would provide an outliner editing experience but without the whole shebang (e.g. Foam 🌐, I think?).

I just want to be able to travel in lists and collapse them easily.

OTHERS

  • A way to correlate data in human-time?
  • NLP data -> language conversion?

Other’s resources

Other lists of ± project ideas that I found particularly inspiring: