Skip to content

Commit

Permalink
* update web pages
Browse files Browse the repository at this point in the history
  • Loading branch information
djcb committed Jan 14, 2012
1 parent a518467 commit 6ba2b8c
Show file tree
Hide file tree
Showing 8 changed files with 306 additions and 20 deletions.
Binary file added www/graph01.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 21 additions & 20 deletions www/index.org
@@ -1,6 +1,7 @@
#+title: Mu
#+title:
#+style: <link rel="stylesheet" type="text/css" href="mu.css">
#+html:<img src="mu.jpg" align="right" margin="10px"/>
#+options: skip t

* Welcome to mu!

Expand All @@ -9,15 +10,32 @@
that mail - in particular, to instantly find that one important e-mail you
need right now.

*mu* is a tool for dealing with e-mail messages stored in the
[[http://en.wikipedia.org/wiki/Maildir][Maildir]]-format. *mu*'s main purpose is to help you to quickly find the
*mu* is a tool for dealing with e-mail messages stored in the [[http://en.wikipedia.org/wiki/Maildir][Maildir]]-format,
on Unix-like systems. *mu*'s main purpose is to help you to quickly find the
messages you need; in addition, it allows you to view messages, extract
attachments, create new maildirs, ... See the [[file:cheatsheet.org][mu cheatsheet]] for some examples.

Searching works by first indexing your messages into a [[http://xapian.org/][Xapian]]-database, which
can then be queried using a custom query language.

** Features

- fast indexing for Maildir, Maildir+ and Maildir-on-VFAT
- search for messages based on the sender, receiver, subject, date range,
size, priority, words in message, flags (signed, encrypted, new, replied,
has-attachment,...), message-id, maildir, tags, attachment (name,
mime-type, text) and more
- command-line tools for indexing, searching, viewing, extracting
attachments, exporting address lists, creating maildirs, ...
- accent/case normalization - so /angstrom/ will match /Ångström/.
- can be integrated with other e-mail clients such as [[http://www.mutt.org/][mutt]] and [[http://www.emacswiki.org/emacs/WanderLust][Wanderlust]].
- [[file:mu4e.html][mu4e]], an emacs-based e-mail client based on =mu=
- [[file:mu-guile.html][mu-guile]]: guile-bindings that allow for scripting, advanced processing of
your data
- fully documented (man pages, info pages)

** News

- 2012-01-07: [[http://code.google.com/p/mu0/downloads/detail?name%3Dmu-0.9.8-alpha3.tar.gz][mu-0.9.8-alpha-3]] is available, with fixes for some =mu4e=
configuration problems; also, the documentation now contains an example of
how to set up =mu4e= with Gmail.
Expand Down Expand Up @@ -73,23 +91,6 @@

- [[file:old-news.org][Old news]]

** Features

- fast indexing for Maildir, Maildir+ and Maildir-on-VFAT
- search for messages based on the sender, receiver, message subject, size,
priority, words in the message body, attachments, date range, flags
(signed, encrypted, new, replied, unread, ...), message-id, maildir
- known to work on Linux (Ubuntu/Fedora/Debian/Gentoo), FreeBSD, MacOS,
Solaris, ...
- fully documented (man pages)
- can be integrated with e-mail clients; documentation has examples for [[http://www.mutt.org/][mutt]]
and [[http://www.emacswiki.org/emacs/WanderLust][Wanderlust]].
- output in plain text, xml, s-expressions (experimental)
- extract message parts, attachments, open them using their default
application

In addition, there is a toy UI for *mu* called [[file:mug.org][mug]]; the plan is to slowly
evolve this into a full-featured UI.

** Development & download
:PROPERTIES:
Expand Down
156 changes: 156 additions & 0 deletions www/mu-guile.org
@@ -0,0 +1,156 @@
#+title: mu-guile: guile-bindings for mu
#+style: <link rel="stylesheet" type="text/css" href="mu.css">
#+options: skip t

Starting from version 0.9.7, =mu= had early, experimental bindings for the
[[http://www.gnu.org/software/guile/][GNU/Guile]] programming language, which is a version of the [[http://en.wikipedia.org/wiki/Scheme_(programming_language)][Scheme]] programming
language, specifically designed for extending existing programs.

=mu= version 0.9.8 has much improved bindings, and they are [[file:mu-guile/index.html][documented]], with
many examples. You can find more examples in the =guile/examples= directory of
the =mu= source package.

It must be said that Scheme (and in general, languages from the Lisp-family)
initially may look a bit 'strange' -- all these parentheses etc.; so please
bear with us.

** Some examples

Here are some examples; we don't provide too much explanation /how/ they do
what they do, but the [[file:mu-guile/index.html][manual]] takes you through that, step-by-step.

*** Messages per weekday

#+begin_src scheme
#!/bin/sh
exec guile -s $0 $@
!#

(use-modules (mu) (mu message) (mu stats) (mu plot))
(mu:initialize)

;; create a list like (("Mon" . 13) ("Tue" . 23) ...)
(define weekday-table
(mu:day-numbers->names
(sort
(mu:tabulate-messages
(lambda (msg)
(tm:wday (localtime (mu:date msg)))))
(lambda (a b) (< (car a) (car b))))))

(for-each
(lambda (elm)
(format #t "~a: ~a\n" (car elm) (cdr elm)))
weekday-table)
#+end_src

Which might get us something like:

#+begin_example
Sun: 2278
Mon: 2991
Tue: 3077
Wed: 2734
Thu: 2796
Fri: 2343
Sat: 1856
#+end_example

*** Drawing graphs

We can also draw graphs from this, by adding the following to the script:

#+begin_src scheme
;; plain-text graph
(mu:plot (weekday-table) "Messages per weekday" "Day" "Messages" #t)

;; GUI graph
(mu:plot (weekday-table) "Messages per weekday" "Day" "Messages")
#+end_src scheme

This gives us the following:

**** plain text graph
#+begin_example
Messages per weekday
Messages
3200 ++---+--------+---------+--------+---------+---------+--------+---++
| + + "/tmp/filel8NGRf" using 2:xticlabels(1) ****** |
3000 ++ * * ++
| *********** * |
| * ** * |
2800 ++ * ** * ********* ++
| * ** ************ * |
2600 ++ * ** ** ** * ++
| * ** ** ** * |
| * ** ** ** * |
2400 ++ * ** ** ** *********** ++
*********** ** ** ** ** * |
2200 *+ ** ** ** ** ** * ++
* ** ** ** ** ** * |
* ** ** ** ** ** * |
2000 *+ ** ** ** ** ** * ++
* + ** + ** + ** + ** + ** + ***********
1800 ********************************************************************
Sun Mon Tue Wed Thu Fri Sat
Day
#+end_example

**** GUI graph

[[file:graph01.png]]



*** Export contacts to =mutt=

=mu= provides =mu cfind= to get contact information from the database; it's
fast, since it uses cached contact data. But sometimes, we may want to get a
bit more advanced. For examples, suppose I want a list of names and e-mail
addresses of people that were seen at least 20 times since 2010, in the
=mutt= address book format.

We could get such a list with something like the following:

#+begin_src scheme
#!/bin/sh
exec guile -s $0 $@ !#

(use-modules (mu) (mu message) (mu contact))
(mu:initialize)

;; Get a list of contacts that were seen at least 20 times since 2010
(define (selected-contacts)
(let ((addrs '())
(start (car (mktime (car (strptime "%F" "2010-01-01")))))
(minfreq 20))
(mu:for-each-contact
(lambda (contact)
(if (and (mu:email contact)
(>= (mu:frequency contact) minfreq)
(>= (mu:last-seen contact) start))
(set! addrs (cons contact addrs)))))
addrs))

(for-each
(lambda (contact)
(format #t "~a\n" (mu:contact->string contact "mutt-alias")))
(selected-contacts))
#+end_src

** License & Copyright

*mu4e* was designed and implemented by Dirk-Jan C. Binnema, and is Free
Software, licensed under the GNU GPLv3

#+html:<hr/><div align="center">&copy; 2011-2012 Dirk-Jan C. Binnema</div>
#+begin_html
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-578531-1");
pageTracker._trackPageview();
</script>
#+end_html
92 changes: 92 additions & 0 deletions www/mu.css
Expand Up @@ -22,3 +22,95 @@ a.menu:visited {color: #ffffff; text-decoration: none; }
a.menu:hover {color: #ff0000; text-decoration: underline; }

.mine {color: #ffffff; font-weight: bold}




/* emacs-code -----------------------*/

/* zenburnesque code blocks in for html-exported org mode */


pre.src {
background: #dddddd;
color: #555555;
}

.org-preprocessor {
color: #8cd0d3;
}

.org-variable-name {
color: #0084C8;
font-weight: bold;
}

.org-string {
color: #4E9A06;
}

.org-type {
color: #2F8B58;
font-weight: bold;
}

.org-function-name {
color: #00578E;
font-weight: bold
}

.org-keyword {
color: #A52A2A;
font-weight: bold;
}

.org-comment {
color: #204A87;
}

.org-doc {
color: #afd8af;
}

.org-comment-delimiter {
color: #708070;
}

.org-constant {
color: #F5666D;
}

.org-builtin {
color: #A020F0;
}


.warning, .org-warning {
color: yellow;
font-weight: bold
}


/* emacs other stuff --------------------- */
.org-date, .org-org-date {
/* org-date */
color: #00ffff;
text-decoration: underline;
}
.org-hide, .org-org-hide {
/* org-hide */
color: #000000;
}
.org-level-1, .org-org-level-1 {
/* org-level-1 */
color: #356da0;
}
.org-level-2,.org-org-level-2 {
/* org-level-2 */
color: #7685de;
}
.org-todo,.org-org-todo {
/* org-todo */
color: #ffc0cb;
font-weight: bold;
}
Binary file added www/mu4e-1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/mu4e-2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/mu4e-3.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 37 additions & 0 deletions www/mu4e.org
@@ -0,0 +1,37 @@
#+title: mu4e: mu for emacs
#+style: <link rel="stylesheet" type="text/css" href="mu.css">
#+options: skip t

With version 0.9.8, =mu= comes with an emacs-based e-mail client that uses
=mu= for its back-end: *mu4e*. For all the details, please see [[file:mu4e/index.html][manual]].

** Screenshots

Here are some screenshots.

*** The main view
[[file:mu4e-1.png]]

*** The headers view
[[file:mu4e-2.png]]

*** The message view
[[file:mu4e-3.png]]


** License & Copyright

*mu4e* was designed and implemented by Dirk-Jan C. Binnema, and is Free
Software, licensed under the GNU GPLv3

#+html:<hr/><div align="center">&copy; 2011-2012 Dirk-Jan C. Binnema</div>
#+begin_html
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-578531-1");
pageTracker._trackPageview();
</script>
#+end_html

0 comments on commit 6ba2b8c

Please sign in to comment.