!!!Widget ideas
*text window showing a subset of a gigantic (>100GB), should allow filtering, search, folding of blocks
*scrollbar with background image that can be updated. idea: show summary of environment in which we scroll.
*graph with objects I can click on and select associated data in other widget. Lasso to select a group of associate objects
*2d heat map where I can click to find associated data. Select a group (possibly a la gimp). Ideally, zoomable, scrollable
*display two or more images on top of each other with a transformation for each, combine them (transparency, difference). Allow to zoom and scroll.
*layout manager that allows to stack widgets (e.g. Map of scrollable area on to of scrollable)
*text label that shows image behind text (e.g. Bar that shows value etc). The image could be blended with background color to make text more readable.
!! Text summary
Text summary
Summarize big documents visually
*thumbnails per page (section?)
*identify important words, assign colors, show them on reduced representation of doc (a couple pixel per page)
*when zoomed in show sentences that are important
*could apply to websites, clusters of docs etc.
!!!Application idea
!! Trace viewer
Goals:
* View strace, truss
* Focus on single line records but be ready for multi-line
* Display text as-is or parsed into columns
* Try to have light weight classes (point to records)

Columns: 
* Time
* Pid/thread id
* Name of syscall
* Args
* Result

Sort by:
* Time
* Pid/thread id
* Syscall
* Args (textually, useful for file names)
* Result (useless?)

Filter by:
* Time
* Pid/thread id
* Syscall (list of names?)
* Args (substring, regexp?) 
* Result


Actions:
* on pid/thread id
** show command (if possible)
** set filter to exclude/include
** if still running: pstack, attach dbg, jstack, memory use
* on syscall:
** man page
** set filter to exclude/include explicitly
* on args
** set filter to exclude/include with text under cursor as default value
* on result
** set filter to exclude/include
** explain value

Graphs:
* time
* name of call
* values
* args: checksum of text, extract from text


General types:
* number
* time
* text

Additional fields:
Use cases:
* where is the app looking for that file?
* what is taking time?
* find string in read or write, identify the file (previous open that returned the file descriptor)
* find sigsegv
* find children spawned
* pid to execve command
* find errors (system calls return error code, child processes returning error codes)
* timing graph (time, pid or system call time)
* show network connections?
* show open files?
* bookmark position
* take snapshot
* copy paste
* jump to other process talking to this one (port number, lsof, pid, strace)
* open multiple strace commands, merge in one view
* load multiple files, merge (time)
* diff (ignore time)

!!!Implementation techniques
* Use composition to display image background behind widget: [swing | http://www.java-tips.org/java-se-tips/javax.swing/wrap-a-swing-jcomponent-in-a-background-image.html]
* glazed lists seem interesting for searching/filtering lists