Use this page to list suggested useful re-usable microapps that have yet to be written/released. If possible, make a wiki page for the app and write up a rough spec.
See also Pending Microapps.
font tool
A service which generates images rendered from non-web fonts
rss -> html reader
feedsplitter and html2rss already do this for rss, but we could elaborate on this
Named message queue
On-the-fly databases, store fielded data for any given inbox and return a key, perform basic database operations given an inbox identifier (list all keys, etc.). Basically a database, but a little looser.
retry server
for accessing unreliable or spotty services. it would basically proxy a request to another service, but if the request fails, it keeps trying for a while, stopping when it finally succeeds.
finite state machine
a state machine consisting of states and transitions is defined. incoming requests move it from state to state. transitions can have trigger urls attached to them such that when the application moves through that transition, it makes a request to the trigger url. the state machine can also be queried to see what state it is currently in. Probably based on Erlang/OTP's gen_fsm Behavior.
sequencer
similar to a database sequence; useful for creating globally shared ids across an application. current + next.
alarm
create an alarm with a trigger url and time. after time has passed, trigger url is requested. include cancel function. trigger url would probably be to the event server.
overload
monitors system resources on host system. can be set to trigger events when thresholds are crossed (eg, too high CPU for too long, disk space too low). can also just report on current system status.
logger
standardized logging as a service. clients can add a log entry {log level, timestamp, contents}, and retrieve lists of entries (with various levels of filtering possible).
round robin
proxies a request between N servers in a round-robin manner.
rules engine
pychinko or RuleDispatch sort of stuff
json <-> xml converter
convert back and forth between json and xml
rdf triplet engine
wrapper of rdflib or something
templater
send it a dict of values (in json) and a url of a template file and it generates the output
xslt processor
send it the url of an xml document and an xsl sheet and it applies the xsl to the xml and returns the results
image resizer/thumbnailer
upload an image and dimensions and it returns the resized version.
(implemented but not released. see Image Resizer.)
cron
hits a url at scheduled times. slightly different from standard system cron in that it can be configured through http.
Session Manager
implemented but not released. See Session Manager. it could stand to be revamped and made a little more REST-like, though.
Document History
send it the url of a document and it returns the diffs/changes of the document over time. There should be an option for including the text or just the line lengths/etc to visualize it.
Form/Test Maker/Taker
- POST a form to a certain URI (used by profs/survey makers)
- GET the form/test for a 'take the test' context (used by students/survey takers)
- GET the form/test for the results (used by profs/survey analysts)
- properties of a form would include:
- * access privs (who/when can look at/take the test; who/when can look at results; who/when can look at comments)
- * each answer to a form item along with the post itself should be 'commentable' (is 'commentable' a 'Tag' or a 'Discussion'?)
Presence Service
for chat type applications. maintains a list of which users are currently online. timeout policy configurable per-app.
image rotator
similar to the resizer. just upload an image, specify clockwise or counter-clockwise (and how many quarter turns) and it returns the image rotated.
bayesian filter
just simple A/B differentiation. you can post training data to the service, then give it some data and it returns A/B and a confidence measure.
configuration manager
namespaced key/value pairs. would have a nice administrative interface. all other projects could then get their config values from it.
decision tree generator
pass it a table of data and tell it which column is the boolean target. it returns a decision tree. see this article for more info on decision trees.
map / reduce
see Map / Reduce
Tiler
POST a large image (or image url) and tile size and it splits it up into tiles (google maps style) returning either a tar/zip of the tiles along with a JSON/XML description of them (ie, which tile is in which position, sizes, etc) or it uploads them somewhere and just returns the JSON/XML description (which has URIs of the tiles). Optionally, this could also do tiling at multiple zoom levels or that could be handled by another microapp (probably using DrinkMe).
