Contents
Ideas
This are only rough ideas... if somebody would like to jump on those "concept", go! Otherwise I may move them some day to FeatureRequests, if I realy need them.
1. iCalendarToMoin
Would like to hava a macro witch can parse a iCalendar-File and display a nice Calendar View (like this one).
Using the Macro/Action EventAggregator is enough for me.
2. Cryptography
some raw toughts about javascript based cryptography for moinmoin.
Ideas:
If you want to save sensitive data into wiki and you maybe can NOT fully trust to your "own" server enviroment (e.g. if you're using some hosting or you just want to be sure that not even the admin (root) can read your data), you have definitly a problem :-). In this case every serverside cryptography is useless, you need cryptography on the client side with encrypt or decrypt your data on the fly and display them in your browser.
The first idea was to use some action like ActionMarket/MoinCrypt, but this macro is not save and the key and text should never be saved on the server side.
An easy way was to use some Browser Plugin like FireGPG, unfortunality the development of the plugin is "discontinued" and also it depend on a browser, plugin and an library "GnuPG".
The best solution would be, to use some javascript library for a "browser based cryptography", like: http://www.fourmilab.ch/javascrypt/
Conclusion: A simple action to enable javascript with the ask for a key and then encryption/decription the content of the wiki page could work. GUI is complicated, xapian & diffs not possible and sharing a key for a group only works without the wiki. In generaly it would need to modify a theme, create an action (enable javascript encrpytion/decription, like the comment functionm), implement the javascript crpytography stuff, support text editor, etcetera...
FireGPG?
yes, but they say FireGPG discontinued, that's said but there is maybe hope: http://github.com/SvenDowideit/fireGPG - we see..
- Used this FireGPG for a while and it does the job very well, some minor problems are:
- Together with the GUI editor its not working (understandable)
- Editing an exist encrypted text needs to much clicks to work
3. Databases
Why always thinkin' about relation databases like mysql... we do have better stuff! Just some rough ideas about hierarchical data model, xml and object oriented databases, well here we go:
3.1. Misc Stuff
Durus persistent object system
ThingDB / Infogami / (Open Library)
3.2. CouchDB
CouchDB - Document Database (Erlang, but with PYthon API)
3.2.1. Document Store
Ein neuer Eintrag in die soeben angelegte Datenbank erfolgt ebenfalls mit der Futon-GUI oder manuell: curl -X PUT http://localhost:5984/my_first_db/4711 -d '{"title":"HelloWorldInCouchDB"}' Es lässt sich ein Dokument mit der ID 4711 anlegen, das über die -d-Option in JSON-Notation angegeben ist. Das Auslesen des Dokuments ist über HTTP GET möglich, etwa wie folgt: curl -X GET http://localhost:5984/my_first_db/4711 Das fragt gemäß den REST-Prinzipien die Ressource mit der ID 4711 in der Datenbank my_first_db ab, die Antwort lautet: {"_id":"4711","title":"HelloWorldInCouchDB"}
see more in german here: http://www.heise.de/developer/artikel/Installation-929133.html
my thinking goes just why not use this kind of database if they are already optimizied for documentation storing... no need for overpowered sql stuff... http://nosql-database.org/
3.2.2. Python
3.3. Mysql / PostgreSQL
Big plus for using those relational database is, when you're running your wiki on a hosted server you offen get mysql databases included, so no pay for extra memory or cpu usages... if you need to setup your own, you may get billed for too much memory or cpu usage.. atleast in my case
4. AJAX framework for MoinMoin
Pyjamas is a stand-alone python to javascript compiler, an AJAX framework / library and a Widget set API. http://pyjs.org/
5. Semantic Desktop
Would like to use the wiki as a semantic desktop and connect all my other datas in a single wiki together. like e-email, favorites from webbrowser, contact adresses, calendar, etcetera. well I'm just looking at: http://www.deepamehta.de/
Funny, I was also looking at this (crazy) stuff quite a while ago and thought about how one could marry that with wiki somehow. But when looking at the length of my TODO.... -- ThomasWaldmann 2009-08-10 12:32:31
6. Userfriendly RSS Feeds
I do make heavy use of the MonthCalendar and Include Macro for my Blog (Example). If you use RSS Feeds (RSS Example) to stay update with my blog I got some problems:
the title in the rss feed is the pagename and not the first h1
if you use the MontCalendar stuff the pagename is always some yyyy-mm-dd, btw. that's also the reason why I use the include macro, and not the FullSearch Macro.the link directs the user to the diff
I would prefer to let the user first see the normal page and then he still can chose to see the diff (but mostly are my pages new ones, so a diff is quite uselss). ) Solution: change from diffs=1 to diffs=0- If you make only "minor" changes, that should not generate a new rss item
Need also to checkout this pages
I'm aware that's properly only my custom problem... well if I've time try to tweak the rss module
-- MarcelHäfner 2009-07-13 16:44:20
7. Twitter
Links for API, Twitter and Python:
7.1. Sending Updates/Status to Twitter
an Action like "TweetThis". If using this action, it will:
- Show an form with an input textfiled with a filled out message (first h1 title from the current bage, together with a shortened url [bit.ly]) and a button [send]
- Sending the message, will lookup your tweet data (username, password) form some config stuff
- and the action will send your message to your personal tweet account
7.2. Integration of Tweets
This is just an idea to integrate Tweets from Twitter.com into MoinMoin. AndreasSchreiber also made some Presentation about Python and Twitter, see Presentation or Python Demo on Twitter. There is also one screen about MoinMoin to Twitter. But this Idea is more to integrate tweets into my blog-/wikisystem.
I'm using the MonthCalender and Include Macro for a simple Blog-/Newssystem (Example). Now I would like to integrate Twitter Shortmessages aka Tweets into this wiki. So it should work like to integrated tweets in existing pages (e.g News/2009-07-09) or creating a new page (with valid history, etc..). Wiki markup is not relevant, because twitter does not supporting this. Important is the acl stuff. it should verify that "tweeter user x" -> "moinmoin usre x" has valid acl rights to this page. Support for change/modify the pagename is not wanted, this should maybe only configurable in the wiki itself.
- Tweet (Message) is
- Axl Rose: I'm going home tonight, because Axl is calling tonight.
new page (no wikipage with the same date exist):
= Axl Rose = I'm going home tonight, because Axl is calling tonight. ---- CategoryNews
adding tweet to a existing page (wikipage with the current date exist)
= Steve Harris ist gestorben = Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin adipiscing risus a mauris semper suscipit. Sed quis ipsum augue. Phasellus sagittis, elit id sodales scelerisque, justo felis laoreet risus, non placerat velit lorem quis neque. Phasellus consequat nulla ac magna vestibulum sit amet suscipit eros interdum. Mauris pulvinar ipsum at leo interdum ac sodales augue faucibus. Vivamus elementum, diam a rutrum interdum, nunc urna rhoncus risus, ut dignissim arcu justo eleifend arcu. Etiam tincidunt hendrerit dui in porta. Integer elit nulla, sodales et hendrerit a, sodales in neque. In adipiscing nulla id mauris pharetra et dapibus ante vestibulum. = Axl Rose = I'm going home tonight, because Axl is calling tonight. ---- CategoryNews
Development:
Cronjob reading Tweets every x minutes from user y (pull)
http://code.google.com/p/python-twitter/- verify twitter username, check moinmoin username, check acl.
Creating new page and add the tweet (titel: text) http://moinmo.in/MoinAPI/Beispiele#PageEditor
- or adding to an existing page the tweet
- saving page with correct history, username, etcetera
8. Better Diff's
Normal not wiki related user would like to have a very simple & userfriendly diff view. That would mean, using html code in e-mails. having some generally color fancy diffs without diff typical chars like "-" and "+". and also never display wiki syntax (just rendered the whole stuff before displaying it), etcetera. a button should be able to switch between "gui/friendly" and "technical" diff. this should be maybe editiable in the userprefs... just a rough feedback 2009-07-06
Example what is not userfriendly:
* You may want to try `div#message, p.status { position: static; }`. For moving the message box to the top of content area, I think the only way is editing theme code to send it after gotobar. + + ---- + - '''There is a Bug in Moin 1.84 and maybe before:''' setting "show_names = False causes" an error in e.g. recentchanges. any idea to solve this problem? + '''There is a Bug in Moin 1.84 and maybe before:''' setting "show_names = False" causes an error in e.g. recentchanges. any idea to solve this problem?
Well this bug is in the 3rd party theme mandarin. Please file a bug report to the theme page. -- ReimarBauer 2009-07-07 07:12:42
- nonono; guess you misunderstood me or I did not clearly write my touches! This is just an example that normal user's can't understand diff's and they just prefer some colourful and much simpler difference view, so say less technical.
- Yes now it is clear and also clarified for others running into this trap
9. PDF Parser
An alternative and new concept to the current htmldoc / action solution (ActionMarket/PdfAction) could maybe to create a pdf document with a pdf-parser. maybe using this tool libarary JagPDF. Benefit could be easier installation, built in pdf support and not first to have an separate html site to be created. well just some very rough idea... 2009-07-06
10. Marginalia and Margin Numbers
Supporting Margin Numbers and Marginalia as an Macro (like FootNote) and for Margin Numbers only also support a #pragma MarginNumbers (like SectionNumbers). 2009-05-14
11. Supporting EPUB Format
ePub is an open format defined by the Open eBook Forum of the International Digital Publishing Forum (<idpf>). It is based on XHTML and XML along with optional style sheets. Its predecessor was the OEB standard. Specifications are found at the idpf web site. http://wiki.mobileread.com/wiki/EPUB
11.1. Embedded EPUBs in Wikipage
Like Images it would be nice if you could just add the epub format to the embeded mimetypes and it could displayed. But in contrast to PDF it should work without plugins ( firefox plugin for epub files displaying directly in the browser: https://addons.mozilla.org/en-US/firefox/addon/45281/). for this I would need to have epub reader in python, witch can be called over action and output the document (with some simple gui for navigation)....
11.2. Output Wikipages as ePUB
It would be nice if you just can output (download) epub files from wiki pages. It should be like the docboc output or the PDFAction.
11.2.1. Workflow
Maybe...
Use MoinMoin to write wiki pages and include many "chapters" into one big main wiki page.
call an action like ActionMarket/PdfAction to add metadata, cover image/text and also some other parameters to create an epub (like the pdf action do)
HTML (MoinMoin) to XHMTL Parser is needed (like htmldoc does for html->pdf)
some tools can also parse docbook to epub- Some tool creates now the correct E-Pub format
- User can download the epub file
11.3. Information
Basic:
Management:
EPUB Management: http://lotek.heavy.ch/calibre or http://code.google.com/p/booktagg/
Reader:
EPUB Reader: http://lotek.heavy.ch/FBReader (works with Windows, Linux, Android, ...)
http://www.aldiko.com/ (for Android Phone!)
Download EPUBs:
Download E-Books: http://www.epubbooks.com/#free-books
Format:
Specification: http://www.idpf.org/specs.htm
Construction Guide: http://www.hxa.name/articles/content/epub-guide_hxa7241_2007.html
Converter:
ODT to EPUB: http://www.infogridpacific.com/igp/AZARDI/eScape%20-ODT2ePub/
EPUB Creater: http://www.juliansmart.com/ecub
Converter: http://calibre.kovidgoyal.net/
Webseiten zu EPUB: http://www.web2fb2.net/ or http://www.bookglutton.com/api/docs/d/getepub,
Python Tools: http://code.google.com/p/epub-tools/
WYSIWYG Editor:
12. Multimedia Server
The goal would be to have software like Sockso or Zina to manage my collection of mp3s and avi videos with the MoinMoin Wiki
12.1. Embeded players
I need to integrate some mp3 and avi. Not only for downloading, more I would like to embed this on a wiki page like a do it with images. here are my ideas
Integrate some flash video player with javascript and flash like Video AVI MPG4:
JW FLV Media Player and ad some macro like
Musi MP3:
Music Player my favorite for mp3
<<Player(attachment="wikipage/attachment.avi",subtitle="my own video subtitle")>> that creates the correct html code (depend if it's a "mp3" or an "avi". also you need to add some javascript stuff into your <head> best is that we use the html_head config var like Arnica do. well if enough time i will try it out once...
<<EmbedObject(attachment.avi)>> should do it already (for parameters see HelpOnMacros/EmbedObject)
- Under my Linux with Video Player (Totem) it works, but if I'm using the Firefox under Windows in my office - it doesn't. In my eyes that's the pain with all those different browsers, plugins and media players! So my approach only to use a flash player, would be more stable on current browsers.
12.2. Playlist and Streaming
Other Ideas would be the possible to downgrade the encoding to 64kbit/s; this should be done on the fly
12.2.1. Streaming
http://domain.com/Def%20Leppard/Pyromania?action=AttachFile&do=stream&target=action_not_words.mp3
12.2.2. XSPF
Authentication is a central point... it's necessary that also for the streaming the local media player can authenticate. If you use the Apache Auth stuff it works... but better would be to use a neutral authentication function!
<?xml version="3.0" encoding="UTF-8"?> <playlist version="1" xmlns="http://xspf.org/ns/0/"> <trackList> <track> <title>Action not Words</title> <creator>Def Leppard</creator> <location>http://sound:sound@domain.com/Def%20Leppard/Pyromania?action=AttachFile&do=get&target=action_not_words.mp3</location> </track> <track> <title>Action not Words</title> <creator>Def Leppard</creator> <location>http://sound:sound@domain.com/Def%20Leppard/Pyromania?action=AttachFile&do=get&target=action_not_words.mp3</location> </track> </trackList> </playlist>
12.3. Browsing Collection
- ID3v2 Tags
The GUI should be created from simple macros or action calls, don't know yet!
12.3.1. All
12.3.2. Artist
Bon Jovi |
||||
|
Album |
Jahr |
Aktion |
|
1 |
1985 |
|||
2 |
1986 |
|||
3 |
1988 |
|||
4 |
1992 |
12.3.3. Album
Es werden jeweils alle Songs vom Album XY angezeigt
Guns N'Roses : Use Your Illusion (1997) |
||||
|
Song |
Dauer |
Filetype |
Aktion |
1. |
Get in the Ring |
3:45 |
mp3 |
|
2. |
Don't Cry |
5:25 |
mp3 |
|
3. |
Civil War |
4:35 |
mp3 |
|
4. |
Dead Horse |
2:15 |
mp3 |
|
5. |
You could be mine |
3:41 |
mp3 |
|
12.4. Downloading
- Zipfile (so you could download the whole album as an single zip file)
tbd.
packages can be used.
13. Etcetera
This stuff will goes to FeaturesRequest someday
Possibility to sort the results of the macro PageDicts
Cryptography for single Wiki Pages via User-ID/Password/etc.. (should be implemented as an Parser like {{{#!crypt
- Xapian Search with Wildcards, Phrase-Search, and better Weights (Searchresults),
- Resorting of an Search Result for Autor, Title, Last-Update-Date, Weights
- Interface/Integration of an Mailinglist like GNU Mailman
Better GUI Editor with supporting the the full MoinMoin Syntax and all Macros
- AJAX XHTML Theme/Framework
- Better caching (for highperformance e.g. system with heavy load)
check macro MonthCalendar
- check macro Include
Features
1. Unsorted
- Searching PDF files: Show hits and the text around in the result list and transmit the search keyword to the pdf plugin, so the pdf reader can jump and highlight directly in the current pdf document.
Using the Wiki as a Filestorage Server with Webdav (FeatureRequests/WebDav)
- Farmwide Search
Better GUI(fulls opport of all MoinMoin Syntax)
2. Open Features
Wanted search features:
- FeatureRequest/SearchInSisterWikis
- FeatureRequests/AddCategorySearchTerm
- FeatureRequests/AdvancedSearchWithMultipleCategories
- FeatureRequests/AdvancedSearchWithMultipleLanguages
- FeatureRequests/AdvancedSearchWithMultipleMimetypes
- FeatureRequests/AjaxBasedSearch
- FeatureRequests/AlternateTextOnEmptyFullSearchResult
- FeatureRequests/AutomaticSearchWordHighlightingAfterWebSearches
- FeatureRequests/Commissioned - MetaData FastTrack - specific implementation and search behaviour
- FeatureRequests/ConfigOptionForJumpingToSingleSearchResult
- FeatureRequests/ExtendFullSearchMacroForOrOperations
- FeatureRequests/FullSearchOnPartialContents
- FeatureRequests/FullSearchResultsAsNonListOption
- FeatureRequests/FullSearchResultsWithoutHighlight
- FeatureRequests/FullSearchSortedOutput
- FeatureRequests/IntegrationExternalSearchEngines
- FeatureRequests/PageTitleSearchMessageHintForPageCreation
- FeatureRequests/PaginatedResultsFromSearchShouldBeCached
- FeatureRequests/SearchInResults
- FeatureRequests/SearchOnlyInVisibleText
- FeatureRequests/SearchResultsSortedByEditDate
- FeatureRequests/SearchWikiFarm
- FeatureRequests/SearchformWithoutAttachmentSearch
- FeatureRequests/SpellAndSearchFormatter
- FeatureRequests/SpellingCorrectorForSearchTerms
- FeatureRequests/SubPageSearch
- FeatureRequests/XapianMimeTypeSearchAndFindPageForm
- FeatureRequests/XapianSearchWithBetterSearchResultList
Tips & Tricks
1. Heavy Wikis
Some ideas how you can support very large Wikis (over 32'000 Pages). But be aware, this stuff is not always tested & proofed, just my 5cents.
1. Search
- You need to use a Xapian search. Without the performance (e.g. for fulltext search) is very slow (even if you only have a few thousand pages).
2. Filesystem
- Ext2/3 supports only 32'000 subdirectories. You may use EXT4:
Break 32000 subdirectory limit http://ext4.wiki.kernel.org/index.php/New_ext4_features
Linux-Dateisystem ext4 im Kernel 2.6.19 http://www.heise.de/newsticker/Linux-Dateisystem-ext4-im-Kernel-2-6-19--/meldung/79348
First benchmarks of the ext4 file system http://www.linuxinsight.com/first_benchmarks_of_the_ext4_file_system.html
An other Filesystem would be the xfs.
Tweaking the performance of the filesystem could also help (on ext3 you could use something like: mount -o data=writeback,noatime,commit=120 (see here) )
3. Heavy Load
Sure you need to use some wsgi with apache (also apache should be checked for tweaking and removing unused modules (link1 or Link2))
- Move the static files (htdocs) to another server (and let the other server handle/deliver this static stuff)
- Move the Xapian index to a faster raid0 harddisk (with some knowledge you maybe even could run the full xapian stuff on a separate "search" server)
- Moving "caching" directories into a memory filesystem (tmpfs)... maybe only useful if you got a 64bit system with 8 or 16GB memory.
- A lot of quadcore cpu's and memory!
- A separated reverse proxy server with memory caching could help to take down the load on some specific pages (like frontpage).
Disable the extensive use of logfiles (apache and moinmoin) and move all the customer statistic stuff to some 3rd party software (and server) like Pwiki
- ... tbd.
Now I only need a sponsor ($$$) and a lot of hardware (well some real life project would also help, sometimes a bit I guess.. maybe...)