Here is a list of the main components desired. Details for each component are in the following subsections.
- user accounts
- wiki
- documentation
- list of libraries
- searching email lists
- site statistics
- blog
- FAQ
- list external resources
- aesthetic functional design
- management structure
Many features require new code to be written (current plan is to implement the site in Ocsigen), and several require well written content.
- OCaml Forge
- Yahoo
- OpenID
- help us understand community
- know which institutions have OCaml programmers
- create map showing where OCaml programmers are based
IMPORTANT GOALS: support writing tutorial with ease. A comment system per paragraph is a plus.
It will be important to have an editor who monitors the structure and quality of the writing on a long-term basis. Else the wiki risks being a collection of incoherent text.
- Choice of markup (define an abstract interface, implement several concrete syntax). This is VERY URGENT in order to be able to develop content while the code is being written.
- should allow to define external anchors.
- support structured documentation with sections, subsections, etc.
- syntax highlighting
- comment system
- history of changes
- export to several formats, e.g. LaTeX, PDF (low priority).
- It should be easy to merge/move/split pages through the provided interface.
- comments per paragraph, as in Real World Haskell
There are many forms of documentation. The wiki feature is meant to enable user contributed documentation. On the other hand, there is much documentation that already exists. At first, we can simply link to these other sources, but a better goal is to seamlessly integrate into the main site. For example, PDF books should be available in html format to help search engines, and possibly provide enhanced features like user comments.
- Books
- All those listed on inria’s site.
- Jason Hickey’s Introduction to OCaml
- Unix system programming in OCaml.
- Think OCaml
- PLEAC-OCaml
- Absorb content of ocaml-tutorial.org.
- Encourage community to add to wiki, especially content already available in other forms elsewhere. Examples:
- something like hackage
- oasis-db project provides a good starting point
- may require also automatically pulling information from github and ocamlforge
- provide download links to latest and previous versions of library
- list methods by which library can be installed, e.g. source, godi, debian package, etc.
- link to API documentation, oasis project will help here
- support star ranking like Amazon, each user can assign number of stars and comment on the library, average starts are shown
- search, like in Hoogle, there is already a version of this for OCaml somewhere…
- have permanent links to libraries [pages] so we can safely refer to them from other pages (e.g. comparing libraries for web programming).
The main OCaml List and Beginner’s list are both difficult to search over. An improved interface would be nice. In addition, there are actually numerous other OCaml related mailing lists (e.g. virtually every project on the forge). Should at least link to them and/or integrate search over all lists.
Make it easy to subscribe to mailing lists. Simply check a box in your account settings page.
- on the paths (list of links) that people follow would be interesting to optimize the site after it is launched
- register with Google
- any software that should be installed on web server?
- aggregate related blogs, already provided by planet but we would like to display headlines only on the front page of the site.
- one new blog where major announcements are made, show this one on front page
- should be in sections
- IRC, create links directly to #ocaml channel via various
clients.
mibbit might be interesting for newcomers. Firefox proposes it when one clicks on the URL in index.html. Freenode does not seem to be available though.
- Stack Overflow
- get funding for professional designer
- clean design but not austere
- should support dynamic features where appropriate, but work gracefully when javascript not enabled
- should also look good and be functional on mobile devices (lower priority)
- examples of sites for inspiration: PostgreSQL, mongoDB, Drupal, Perl
- random eye-catching ideas: word clouds, charts
- site is managed by a non-profit organization to be created
- site content is enriched by the community with a mediation on the content by managers